Flask和request-toolbelt“ BrokenPipeError”

时间:2019-02-08 14:41:04

标签: flask python-requests toolbelt

我试图更准确地了解Http连接如何与Flask一起工作,所以我尝试编写一个非常简单的应用程序以及另一个与request和requests-toolbelt的简单连接:

app = Flask('file-streamer')

@app.route("/uploadDumb", methods=["POST"])
def upload_dumb():
    print("Hello")
    return Response(status=200)

因此,基本上,该服务器应该只接收请求并返回响应。

然后,我实现了一段简单的代码,该代码使用toolbelt发送请求:

import requests 
from requests_toolbelt.multipart import encoder

values = {"file": ("test.zip", open("test.zip", "rb"), "application/zip"), "test": "hello"}

m = encoder.MultipartEncoder(fields=values)

r = requests.post(url="http://localhost:5000/uploadDumb", data=m, headers={"Content-Type": m.content_type})

我要发送的文件是一个很大的文件,我想通过流媒体上传。 问题是,我希望Flask服务器等待整个文件发送出去(即使文件无用),然后返回响应,但这不是正在发生的事情。 实际上,Flask在发送过程的开始就响应,返回200响应,这导致“请求”端以“ BrokenPipeError”结束。

有人可以向我解释那里发生了什么吗?

0 个答案:

没有答案