python提交multipart/form-data请求(上传文件,提交数据) boundary requests没有这个功能解决方法

因为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转换,上传方法一样

你可能感兴趣的:(python)