用requests发送multipart/form-data请求
2021-01-13 本文已影响0人
RedB
在使用python的requests库实现上传时,有时会遇到一些网站使用multipart/form-data的格式进行上传,即类似Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryJnFwE6CVusCddc0K
,且抓包到的请求一般如下图:

这种情况下,我们通常可以用如下方式发送form-data格式的数据:
multipart_form_data = {
'file2': ('custom_file_name.zip', open('myfile.zip', 'rb')),
'action': (None, 'store'),
'path': (None, '/path1')
}
response = requests.post('https://httpbin.org/post', files=multipart_form_data)
但是有一些时候,我们抓包会发现会有一些重名的字段,这种情况下就无法用传统的使用字典的方案了。
此时需要改成元组的形式~ 范例如下:
multipart_form_data = (
('file2', ('custom_file_name.zip', open('myfile.zip', 'rb'))),
('action', (None, 'store')),
('path', (None, '/path1')),
('path', (None, '/path2')),
('path', (None, '/path3')),
)
response = requests.post('https://httpbin.org/post', files=multipart_form_data)