![](/img/trans.png)
[英]Why can't I connect to http server on localhost through a browser?
[英]I can't connect to a Flask server from other devices(=not from localhost)
我的目標是在 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 錯誤。
我對這個簡單問題的解決方案一無所知。 如果這里有人會幫助我,我會很高興。
提前致謝!!
試試這個
請將python腳本中的主機設置為
host='0.0.0.0'
這樣,服務器將偵聽所有可用的網絡接口。
您還必須分配您的端口(也在 python 中):
port=5000
並注意,您的防火牆不會阻止請求。 要更改防火牆的行為,您可以使用(在 Windows 上)集成防火牆工具。 在那里,您還可以輕松地為本地網絡中的端口 5000 啟用TCP流量。
有時,您還必須在本地路由器中啟用對等通信。
Ps:您的鏈接中也有兩個斜杠
從另一台計算機訪問flask應用程序的一種方法是獲取主機的IP並在另一台計算機上運行它。
在 Windows 中,轉到cmd
並鍵入ipconfig
並查找您的計算機 ipv4 地址 例如, 192.168.0..
在 Linux 中,使用ifconfig
。
然后,在另一台機器上,
http://<host_ipaddress>:<port>/<endpoint>
例如, http://10.0.0.4:5000/sample
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.