我有一个带有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的正确方法是什么?
P.S。我还尝试对mp.append()的结果使用set_content_disposition(),但是它返回None而不是Payload,如此处文档http://docs.aiohttp.org/en/stable/multipart.html#sending-multipart-requests
中所述答案 0 :(得分:0)
尝试添加标题:
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)