python接口自动化之模拟文件上传接口
一般上传文件的接口格式如下:
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"
表示以二进制模式打开文件