我有一个带有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)