如何在python中发送带有请求的“multipart/form-data”?

Che*_*lla 3 python post request

如何在 python 中发送带有请求的 multiparta?如何使用请求发布我的表单,我尝试了,但该帖子不起作用。

图 1

图 2

files={'check_type_diff': (None, '0'),
       'category': (None, '19'),
       'company_ad': (None, '0')}


#login
payload = { 'username':'xxxxx','passwd':'xxxx'}
s = requests.Session()
r = s.post('https://exemple.com/0',data=payload)
#login to my account


post ads
r = s.post('https://exemple.com/0', data=files )
print r.text

the last post don't work ????
Run Code Online (Sandbox Code Playgroud)

小智 6

payload = { 'username':'xxxxx',
            'passwd':'xxxx'}
session = requests.Session()
req = session.post('https://exemple.com/0',data=payload)

payload ={'check_type_diff':'0',
          'category':'19',
          'company_ad':'0'}


req = session.post('https://exemple.com/0', data=payload )
print req.content
Run Code Online (Sandbox Code Playgroud)

注意:post('URL',files=files)如果您有文件内容,则应使用。多部分数据只是作为普通数据工作,只是格式和方法不一样。

示例:如果您有一个文件和一些多部分数据,您的代码将是这样的:

files = {"file":(filename1,open(location+'/'+filename,"rb"),'application-type')}
payload ={'file-name':'Filename',
          'category':'19'}


req = session.post('https://exemple.com/0', data=payload, file=files)
print req.content
Run Code Online (Sandbox Code Playgroud)

您甚至不需要将“文件”行添加到 中payloadrequests它将把请求放在一起。