flask最小应用无法访问服务器

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/CTPeng/article/details/84109874

问题

OS:window10
IED:pycharm
web 框架:flask
问题:只能发送几次请求,使得控制台有相关信息,但是后面无论如何处理都看不到客户端的请求信息,当操作系统重启之后,重复进行以上操作又发生了问题。

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"
if __name__ == '__main__':
    app.run(debug=True)

原因

在这里插入图片描述
使用pycharm进行web开发的过程中会出现将一个flask app.py运行多次,导致程序提示都运行在同一个端口上,但是pycharm没有提示这个问题,当我们点击文件的x关闭窗口之后,事实上你还是没有关闭应用,导致无法正确的将http请求路由到正确的应用上,因为此时实际上有多个应用在同一端口

查看运行的端口

查看指定端口
通过:netstat -ano | findstr "5000"命令,可以查找到所有的5000端口的应用
发现有三个应用在同一端口上。
这时,我们可以关闭所有的应用之后,在pycharm中重启一个服务之后,就可以重新启动应用了。

关闭应用端口

关闭端口
通过以上命令关闭以上的三个应用。

重启flask app.py

右键-运行就行了。

展开阅读全文

Android Studio 应用无法访问本地服务器

08-07

代码在android studio 模拟器运行后本地服务器监听不到访问,可以确定后端代码没有问题,并且模拟器网络正常,可以使用模拟器里的浏览器访问服务器。rn应用也添加了网络访问权限。rn```rn rn```rn代码:rnrn```rnpublic class MainActivity extends AppCompatActivity rnrn private TextView tvContent;rnrn @Overridern protected void onCreate(Bundle savedInstanceState) rn super.onCreate(savedInstanceState);rn setContentView(R.layout.activity_main);rnrn tvContent = (TextView) findViewById(R.id.test1); // 这里页面上就一个简单的TextView,用于展示获取到报文内容rn requestUsingHttpURLConnection();rn rnrn private Handler handler = new Handler()rn @Overridern public void handleMessage(Message msg) rn if(msg.what == 1)rn tvContent.setText(msg.obj.toString());rn rn rn ;rnrnrn private void requestUsingHttpURLConnection() rn // 网络通信属于典型的耗时操作,开启新线程进行网络请求rn new Thread(new Runnable() rn @Overridern public void run() rn HttpURLConnection connection = null;rn try rn URL url = new URL("http://10.0.2.2:8080/ServletTest/RegisterServlet?account=123&password=abc"); // 声明一个URL,注意——如果用百度首页实验,请使用https //http://10.20.4.178:8080/ServletTest/RegisterServlet?account=123&password=abcrn Log.d("test", "开始连接");rn connection = (HttpURLConnection) url.openConnection(); // 打开该URL连接rn connection.setRequestMethod("GET"); // 设置请求方法,“POST或GET”,我们这里用GET,在说到POST的时候再用POSTrnrn connection.setConnectTimeout(8000); // 设置连接建立的超时时间rn connection.setReadTimeout(8000); // 设置网络报文收发超时时间rnrn InputStream in = connection.getInputStream(); // 通过连接的输入流获取下发报文,然后就是Java的流处理rn Log.d("test", "获取连接");rn BufferedReader reader = new BufferedReader(new InputStreamReader(in));rn StringBuilder response = new StringBuilder();rn String line;rn while ((line = reader.readLine()) != null) rn response.append(line);rn rnrn Message msg = new Message();rn msg.what = 1;rn msg.obj = response.toString();rn Log.d("test", response.toString());rn handler.sendMessage(msg);rnrn catch (MalformedURLException e) rn e.printStackTrace();rn catch (IOException e) rn e.printStackTrace();rn rn rn ).start();rn rnrn```rnURL应该没有问题,我通过日志输出的URL可以在模拟器浏览器成功访问服务器rnrn```rnpublic class Consatant rn public static String URL = "http://10.0.2.2:8080/ServletTest/"; // IP地址请改为你自己的IPrnrn public static String URL_Register = URL + "RegisterServlet";rn public static String URL_Login = URL + "LoginServlet";rnrnrn``` 问答

没有更多推荐了,返回首页