一般上传文件的接口格式如下:
import requests
# 定义url
url = "http://example.com/upload-file"
# 定义请求体(如果没有可以不写),为None即可
data = {'key1': 'value1', 'key2': 'value2'}
# 定义请求头
headers = {'token': 'token'}
# 定义上传的文件参数
files = {'file': ('py.xlsx', open(r'D:\Users\72036454\Desktop\pythonProject4\data\upload_files\py.xlsx', 'rb'))}
# 发送请求
response = requests.post(url, headers=headers, data=data, files=files)
# 获取响应
print(response.text)
有些参数是需要根据自己的接口而定的。
URL: 根据自己的来设定
请求体:根据自己的来设定, 可以不写,也可以为None
请求头:这个要注意了,我踩了很多次坑,请求头中的这个参数 “Content-Type” 不要填进去python代码中的(请求头)里, 因为使用文件上传 files 参数时, python已经帮你传了, 如果(请求头)里再传一次就会报错
文件参数:
“file” 这个值一般是固定的, 但是也有例外, 可以通过fiddler查看上传接口请求头中“Content-Disposition”中的值,里面name=""是什么值,file就填什么值。
“py.xlsx” 这个是你文件的名称,一般就是文件的名称,但也有例外,可以通过fiddler查看上传接口请求头中的“Content-Disposition”,里面filename=""是什么值,file就填什么值。
open 打开文件的意思, 需要加载出来才能上传
r'D:\Users\72036454\Desktop\pythonProject4\data\upload_files\py.xlsx' : 上传文件的路径
‘rb’ :其中 "r"
表示以只读模式打开文件,而 "b"
表示以二进制模式打开文件