我希望能够将数据发送到我的Flask应用程序.我试过访问request.data但它是一个空字符串.你如何访问请求数据?
@app.route('/', methods=['GET', 'POST'])
def parse_request():
data = request.data # data is empty
# need posted data here
Run Code Online (Sandbox Code Playgroud)
这个问题的答案促使我在Python Flask中询问获取原始POST主体,而不管接下来是Content-Type标头,这是关于获取原始数据而不是解析数据.
我们正在尝试让Flask Web服务正常工作,我们遇到了一些流媒体帖子的问题 - 即当标题包含Transfer-Encoding:chunked时.
看起来默认烧瓶不支持HTTP 1.1.有没有解决这个问题?
我们正在运行此命令:
$ curl -v -X PUT --header "Transfer-Encoding: chunked" -d @pylucene-3.6.1-2-src.tar.gz "http://localhost:5000/async-test"
Run Code Online (Sandbox Code Playgroud)
反对这段代码:
@app.route("/async-test", methods=['PUT'])
def result():
print '------->'+str(request.headers)+'<------------'
print '------->'+str(request.data)+'<------------'
print '------->'+str(request.form)+'<------------'
return 'OK'
Run Code Online (Sandbox Code Playgroud)
这是卷曲输出:
$ curl -v -X PUT --header "Transfer-Encoding: chunked" -d @pylucene-3.6.1-2-src.tar.gz "http://localhost:5000/async-test"
* About to connect() to localhost port 5000 (#0)
* Trying ::1... Connection refused
* Trying 127.0.0.1... connected
* Connected to localhost (127.0.0.1) port 5000 (#0)
> PUT /async-test HTTP/1.1
> User-Agent: curl/7.21.4 (universal-apple-darwin11.0) libcurl/7.21.4 OpenSSL/0.9.8r zlib/1.2.5 …Run Code Online (Sandbox Code Playgroud) 如何从Flask中的POST请求中获取原始数据?
我从web.py移动到瓶中并在生产一些客户,不幸的是正在使用的Content-Type头application/x-www-form-urlencoded,因此更改请求的标头值是不是一种选择(除非在服务器上覆盖).
我不能用:
data = request.form.keys()[0]
Run Code Online (Sandbox Code Playgroud)
因为偶尔'&'字符会显示在我的数据中并尝试遍历form.keys添加'&'似乎会因某种原因破坏数据.
我目前使用中提出的解决方案这个帖子,但我也不太清楚,如果这有任何性能问题.
我正在寻找三件事之一:
WGSICopyBody方法不会产生任何不利的性能问题data = request.form.keys()[0]通过循环键并正确地恢复'&'数据来使this()方法工作Request类?