我已经尝试了一段时间,以实现使用requests
监视POST请求的进度。我尝试使用MultipartEncoder
策略和requests-toolbelt
策略,而其他策略则使用分块策略,但是不幸的是,它仅适用于带有data=
有效负载的请求,而不适用于file=
有效负载的请求。如果我尝试任何data
负载,Im使用的站点将返回400。可以在以下位置查看该API:https://file.io
标头也不支持分块。我确实需要为应用程序的UI提供进度条。他们的网站上有一个工作进度栏,但是我真的很难理解他们的JS。
class FileDeliveryHandler:
def __init__(self, url='https://file.io'):
self.post_url = url
def post_file_to_api(self, path_to_file):
file = {'file': (path_to_file, open(path_to_file, 'rb'))}
r = requests.post(self.post_url, files={'file': file})
return r.text