对Content-Type为multipart/form-data接口的处理方法
先解释一个名词enctype
enctype就是encodetype:就是编码类型的意思。
默认情况下,enctype的值是application/x-www-form-urlencoded,不能用于文件上传,只有使用了multipart/form-data,才能完整的传递文件数据。
准确的说,application/x-www-form-urlencoded不是不能上传文件,而是只能上传文本格式的文件,multipart/form-data是将文件以二进制的形式上传,这样可以实现多种类型的文件上传。
一、接口相关信息



二、requests-toolbelt
对于Content-Type为multipart/form-data的接口,我们使用requests-toolbelt来进行处理。
from requests_toolbelt.multipart import MultipartEncoder
MultipartEncoder(fields={
'file': ('包含格式的图片名',图片的二进制流,'image/图片格式')
})
ps:
png图片:image/png
jpg图片:image/jpeg
gif图片:image/gif
import requests
from requests_toolbelt.multipart import MultipartEncoder
class UploadImg:
def __init__(self):
self.headers = {}
def upload_img(self):
url = 'http://httpbin.org/post'
data = MultipartEncoder(fields={
'file': ('osi.png', open(r'C:\osi.png', 'rb'), 'image/png')
})
self.headers['Content-Type'] = data.content_type # 对请求头进行处理
res = requests.post(url=url, data=data, headers=self.headers)
print(res.text)
if __name__ == '__main__':
UploadImg().upload_img()

浙公网安备 33010602011771号