本文介绍如何使用requests上传图片或文件
一般上传都需要使用到post请求,使用files参数上传图片或文件
请求data传参如下:
代码如下
# coding=utf-8
# 导入requests包
import requests
url = "" # 上传文件的接口地址
header = {"Content-Type":"", "Cookie":"" } # 请求头部信息,大部分上传照片不要"Content-Type"值
data= {} # data传参(部分接口需要data传参)
file_path = "" # 图片或文件的绝对路径
file = {"multipartFile": ("a.jpg", open(file_path, "rb"), "image/jpeg")} # "image/jpeg"照片格式
#file = {"multipartFile": ("产品导入.zip", open(path, "rb"), "application/zip")} # "application/zip"zip格式
r = requests.post(url, headers=header, data=data, files=file)
print(r.json()) # 打印接口返回数据
继续优化下,上面代码运行后虽然上传图片成功,但是会报文件未关闭的错误。因此我们改造下,使用with方法打开,它会自动关闭。
代码如下:
# coding=utf-8
# 导入requests包
import requests
url = "" # 上传文件的接口地址
header = {"Content-Type":"", "Cookie":"" } # 请求头部信息,大部分上传照片不要"Content-Type"值
data= {} # data传参(部分接口需要data传参)
file_path = "" # 图片或文件的绝对路径
with open(self.img_path, 'rb')as f: # 使用with打开图片后自动关闭,直接用open后面会报未关闭图片错误
file = {"multipartFile": ("a.jpg", f.read(), "image/jpeg")} # "image/jpeg"照片格式
#file = {"multipartFile": ("产品导入.zip", f.read(), "application/zip")} # "application/zip"zip格式
r = requests.post(url, headers=header, data=data, files=file)
print(r.json()) # 打印接口返回数据