因为requests本身没有支持这个上传函数,所以在requests手册中写到了requests_toolbelt这个附加库,可以通过
pip install requests_toolbelt
进行安装
本文只写如何进行multipart/form-data的请求
import requests
from requests_toolbelt import MultipartEncoder
HEADER = {
'Host': 'qq.com',
'Accept': 'text/*',
'Pragma': 'no-cache',
'User-Agent': 'weixin/iPadAir2(Cellular)iOS12.0/0x1607042c',
'Accept-Language': 'zh-cn',
'Accept-Encoding': 'compress;q=0.5,gzip;q=1.0',
'Connection': 'keep-alive'
}
COOKIE = {
'uin':'o369848666'
}
m = MultipartEncoder(
fields={
'subject': 'abcd123',
'content': 'abcd
',
'sendtype': '1',
'oldmailid': '',
'image': 'L2RhdGEvNzcyLzM2OTg0ODYyMi8yMDE5MDYzMF8xMjAwNDlfMjU0Mjk4MTg='
})
HEADER['Content-Type'] = m.content_type
requests.post(URL,data = m,headers = HEADER ,cookies = COOKIE)
其中,m.content_type输出的是库生成header里面的Content-Type.
'multipart/form-data;boundary=----------gL6G13ei4cH2Ef1cH2ae0CH2ei4gL6'
直接赋值到header即可.
如果需要上传图片文件,将图片文件进行base64转换,上传方法一样