【发布时间】:2015-11-01 07:27:19
【问题描述】:
在将 .py 脚本设置为 app.run(host='0.0.0.0') 之后,我所有的 put/get/etc 请求都以 404 结束。
E:\location>c:Python27\python.exe coordinatorSim.py
* 在http://0.0.0.0:5000/ 上运行(按 CTRL+C 退出)
192.168.0.101 - - [01/Nov/2015 09:19:18] “PUT /patient/start HTTP/1.1”404 -
我从wifi网络中的另一台机器向192.168.0.103:5000/patient/start发送请求,这是运行py脚本的机器的ip。
如果我删除了app.run(host='0.0.0.0'),那么请求会在默认本地主机地址127.0.0.1:5000 上工作(假设我将请求发送到127.0.0.103:5000/patient/start)
我错过了什么?
put 请求是:
app = Flask(__name__)
app.debug = True
app.run(host='0.0.0.0')
sSocket = None
......
# Creates client for socket communication. The http client supplies the IP address and port no.
@app.route('/patient/start', methods = ['PUT'])
#@requires_auth
def patient_start():
global sThreadStarted
global sSocket
global sSocketThread
# If the client is already started, return an error code !?
#print "JSON:", request.json
if len(request.json) > 0:
l_address = request.json["address"]
l_port = request.json["port"]
# Start client
print l_address, l_port
try:
sSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
except socket.error, e:
return "Error creating socket: " + e
try:
sSocket.connect((l_address, int(l_port)))
except socket.gaierror, e:
return "Address error: " + e
except socket.error, e:
return "Connection error: " + e
try:
sThreadStarted = True
sSocketThread.start()
except threading.ThreadError, e:
return "Threading error: " + e
message = {
'status': 200,
'message': 'Socket created'
}
resp = jsonify(message)
resp.status_code = 200
return resp
else:
return bad_request()
【问题讨论】:
-
如果没有
DEBUGdisabled,我认为你无法在 0.0.0.0 上运行 -
@jvc26 实际上 never 在
0.0.0.0上运行debug模式是个好主意,但我认为这不是问题。 -
嘿,确实是的 - 我实际上并不认为 Flask 让你,但你是对的,那太愚蠢了!
-
只是设置了
app.debug = True,结果没有变化 -
那里的
bad_request是什么?还要检查 localhost:5000 甚至应用程序从 0.0.0.0 开始
标签: python rest network-programming python-requests