用requests发送multipart/form-data请求

2021-01-13  本文已影响0人  RedB

在使用python的requests库实现上传时,有时会遇到一些网站使用multipart/form-data的格式进行上传,即类似Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryJnFwE6CVusCddc0K,且抓包到的请求一般如下图:

Fiddler截图

这种情况下,我们通常可以用如下方式发送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)

以上内容基本参考自:https://stackoverflow.com/a/35974071/5093308

上一篇 下一篇

猜你喜欢

热点阅读