aiohttp 上传文件作为 curl -F



我有一个带有curl -F"file=/tmp/test.txt"的请求,它响应200,但我无法在Python中模拟此请求。我尝试过这样的事情

mp = aiohttp.MultipartWriter()
mp.append(open('/tmp/test.txt', 'rb'))
result = await session.post(url, data=mp)

但它不起作用,服务器响应400。我也试过

mp.append_form([('file', open('/tmp/test.txt'))]) 

它也不起作用。使用 aiohttp 模拟 curl -F 的正确方法是什么?

附言我还尝试对 mp.append(( 的结果使用 set_content_disposition((,但它返回 None 而不是 Payload,正如文档中描述的那样 http://docs.aiohttp.org/en/stable/multipart.html#sending-multipart-requests

尝试添加标头:

headers={
    'Content-Length': '{file lendth}'
    'Content-Type': 'multipart/form-data'
}
/////////////////////////////////////////
mp = aiohttp.MultipartWriter()
mp.append(open('/tmp/test.txt', 'rb'))
result = await session.post(url, data=mp, headers=headers)

最新更新