我的目标是在python服务器和android(java)客户端之间构建RESTful API通信。
我想从一个客户端开始使用chrome中的URL,然后使用android-java客户端。
我有一个非常简单的Flask服务器:
from flask import Flask
app = Flask(__name__)
@app.route("/RESTfulExample/json/product/get")
def hello():
return "Hello !!"
if __name__ == "__main__":
app.run()
当这是localhost(ip = 127.0.0.1)时,服务器和客户端之间的通信效果很好。
问题是当我从其他设备运行客户端时(我尝试使用手机和另一台计算机):
from flask import Flask
app = Flask(__name__)
@app.route("/RESTfulExample/json/product/get")
def hello():
return "Hello !!"
if __name__ == "__main__":
#app.run()
app.run(host='10.0.0.54', threaded=True)
当我运行服务器并在chrome URL中输入此URL(http://10.0.0.54:5000//RESTfulExample/json/product/get)时,2-3分钟后会返回ERR_CONNECTION_TIMED_OUT错误或ERR_ADDRESS_UNREACHABLE错误。
我对这个简单问题的解决方案一无所知。如果有人在这里帮助我,我将很高兴。
提前致谢!!
答案 0 :(得分:1)
请将python脚本中的主机设置为
host='0.0.0.0'
由此,服务器将侦听所有可用的网络接口。
您还必须分配您的端口(也在python中):
port=5000
请注意,防火墙不会阻止请求。 要更改防火墙的行为,您可以使用(在Windows上)集成的防火墙工具。在那里,您还可以轻松地为本地网络中的端口5000启用 TCP 流量。
有时您还必须在本地路由器中启用点对点流量。
Ps:链接中还有两个斜杠
答案 1 :(得分:0)
从另一台计算机访问flask应用程序的一种方法是获取主机的IP并在另一台计算机上运行它。
在Windows中,转到cmd
并键入ipconfig
并查找您的计算机ipv4地址
例如,192.168.0..
在Linux中,使用ifconfig
。
然后在另一台机器上
http://<host_ipaddress>:<port>/<endpoint>
例如http://10.0.0.4:5000/sample
答案 2 :(得分:0)
尝试