"BrokenPipeError" с Flask и запросами-toolbelt - PullRequest
0 голосов
/ 08 февраля 2019

Я пытаюсь более точно понять, как соединения Http работают с Flask, поэтому я попытался написать очень простое приложение и другое простое соединение с запросами и запросами 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».

Может ли кто-нибудь объяснить мне, что там происходит?

...