Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过python AIOHTTPClientSession发布多部分表单数据_Python_Python Requests_Multipartform Data_Python Asyncio_Aiohttp - Fatal编程技术网

如何通过python AIOHTTPClientSession发布多部分表单数据

如何通过python AIOHTTPClientSession发布多部分表单数据,python,python-requests,multipartform-data,python-asyncio,aiohttp,Python,Python Requests,Multipartform Data,Python Asyncio,Aiohttp,我试图以post请求的形式异步发送一些多部分编码的表单数据,主要是一个文件和两个其他字段 在尝试使用asyncio之前,我使用请求工具beltmultipartincoder()同步执行该过程,该工具对正常请求非常有效,但对async使用aiohttp时不起作用。aiohttp提供了两个多部分类,一个FormData()类和一个MultipartWriter()类,这两个类都没有给我带来多少成功 经过一些测试后,似乎不同之处在于,当我使用toolbeltmultipartincoder()时,请

我试图以post请求的形式异步发送一些多部分编码的表单数据,主要是一个文件和两个其他字段

在尝试使用asyncio之前,我使用请求工具belt
multipartincoder
()同步执行该过程,该工具对正常请求非常有效,但对async使用aiohttp时不起作用。aiohttp提供了两个多部分类,一个
FormData()
类和一个
MultipartWriter()
类,这两个类都没有给我带来多少成功

经过一些测试后,似乎不同之处在于,当我使用toolbelt
multipartincoder()
时,请求按其应发送post请求的
表单
部分中的数据。但是,当使用aiohttp时,请求被放入请求的
正文
部分。不知道为什么他们的行为不同

def multipartencode()->ClientResponse():
#使用多端口编码器
m=多端口编码器(
字段={'type':type_str,
“元数据”:json.dumps(元数据),
'文件':(文件名,文件'application/json')}
)
#使用FormData
data=FormData()
data.add_字段('file',file,filename=filename,
内容(类型=“多部分/表单数据”)
data.add_字段('type',type_str,content_type='multipart/form data'))
data.add_字段('metadata',json.dumps(metadata),
内容(类型=“多部分/表单数据”)
#使用MultipartWriter
使用MultipartWriter(“multipart/form data”)作为mpwriter:
part=mpwriter.append(
文件,{'CONTENT-TYPE':'multipart/formdata'})
part.set\u content\u disposition('form-data'))
part=mpwriter.append_form([('type',type_str)])
part.set\u content\u disposition('form-data'))
part=mpwriter.append_form([('metadata',json.dumps(metadata)))
part.set\u content\u disposition('form-data'))
#使用ClientSession()发送请求
resp=wait session.post(url=url,data=data,headers=headers)
返回响应

如何正确格式化/构建多部分编码的请求,使其使用aiohttp发送?

发布在aiohttp上的这个问题可能会有所帮助,特别是以下评论: