Python Flask保持活动连接请求失败

Python Flask保持活动连接请求失败,python,flask,Python,Flask,我想用板条箱保持http连接,但失败了 我构建了一个演示应用程序 从烧瓶导入烧瓶,做出响应,响应 从flask导入jsonify 尝试: 从http.server导入BaseHTTPRequestHandler 除: 从BaseHTTPServer导入BaseHTTPRequestHandler app=烧瓶(名称) @app.route('/',方法=['GET','POST']) def hello_world(): resp=make_response(“{123':'aaa'}”) 返回

我想用板条箱保持http连接,但失败了

我构建了一个演示应用程序

从烧瓶导入烧瓶,做出响应,响应
从flask导入jsonify
尝试:
从http.server导入BaseHTTPRequestHandler
除:
从BaseHTTPServer导入BaseHTTPRequestHandler
app=烧瓶(名称)
@app.route('/',方法=['GET','POST'])
def hello_world():
resp=make_response(“{123':'aaa'}”)
返回响应
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
BaseHTTPRequestHandler.protocol_version=“HTTP/1.1”
app.run()
我发出一些请求,:

{"text":-1193959466}
{"text":-1139614796}
{"text":837415749}
{"text":-1220615319}
{"text":-1429538713}
{"text":118249332}
{"text":-951589224}
我收到了一些错误:

127.0.0.1 - - [18/Apr/2019 20:14:15] "POST / HTTP/1.1" 200 -
127.0.0.1 - - [18/Apr/2019 20:14:16] "{"text":-1193959466}POST / HTTP/1.1" 405 -
127.0.0.1 - - [18/Apr/2019 20:14:16] "{"text":-1139614796}POST / HTTP/1.1" 405 -
127.0.0.1 - - [18/Apr/2019 20:14:17] "{"text":837415749}POST / HTTP/1.1" 405 -
127.0.0.1 - - [18/Apr/2019 20:14:17] "{"text":-1220615319}POST / HTTP/1.1" 405 -
127.0.0.1 - - [18/Apr/2019 20:14:18] "{"text":-1429538713}POST / HTTP/1.1" 405 -
127.0.0.1 - - [18/Apr/2019 20:14:19] "{"text":118249332}POST / HTTP/1.1" 405 -
127.0.0.1 - - [18/Apr/2019 20:14:19] "{"text":-951589224}POST / HTTP/1.1" 405 -
对于此日志,第一个请求是成功,但其他请求失败。 它似乎没有清除最后一个请求内容

如果我删除此代码:

BaseHTTPRequestHandler.protocol_version = "HTTP/1.1"
又没事了

有人遇到过同样的问题吗?我使用了烧瓶版本:1.0.2


更新: 我知道发生了什么,我需要阅读请求内容:

@app.route('/',方法=['POST'])
def hello_world():
#阅读请求内容
打印(request.json)
打印(“\n”)
resp=make_response(“{123':'aaa'}”)
返回响应

谢谢大家。

您可以使用默认的请求处理程序
WSGIRequestHandler
而不是使用
BaseHTTPRequestHandler

由于WSGIRequestHandler扩展了BaseHTTPRequestHandler,因此可以指定要使用的HTTP协议版本。如果将属性设置为HTTP/1.1,则连接将保持活动状态

from flask import Flask, make_response, Response
from werkzeug.serving import WSGIRequestHandler
from flask import jsonify

app = Flask(__name__)

@app.route('/', methods=['GET', 'POST'])
def hello_world():
    resp = make_response("{'123':'aaa'}")
    return resp

if __name__ == '__main__':
    WSGIRequestHandler.protocol_version = "HTTP/1.1"
    app.run()

别忘了包含werkzeug.WSGIRequestHandler中的
,这是否回答了您的问题?