一.用request库去请求上传文件的接口
import requests
url = "http://qa4.docker.xuri.p4p.sogou/batch/getUploadResult.action?uploadSearchType=0"
value = {
"media":open("C:\\Users\\Administrator\\Desktop\\新增物料.xls","rb")
}
headers = {
"Cookie":"IPISP=ISP; session_id_atlas=sid_atlas_a2c9289a-79c5-4df3-9ca7-e933bfe843eb; suf_p4p_user_id=416384; IPLOC=ZZ; IPISP=ISP; JANUS-SESSION=1ebee345-6f34-4466-a8f8-feb66cfbd4c3; uid=416384; JSESSIONID=aaaD5kbdjYfUUfkqWZC3x",
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0",
"Accept":"*/*",
}
res = requests.get(url=url,files=value,headers=headers,verify=False)
print(res.text)
解读:
- 参数url:请求路径
- 参数value:(该value是随意起的名字)
- media:是MIME类型的一种,以后上传什么样的文件,就需要去网上对照MIME的类型进行填写。
- media对应的值:需要用open方法,打开路径+文件,以只读,且二进制的方式进行打开,上传
- 参数headers:请求头。
- 参数res:请求的结果保存到res中
- 上传文件时,需要用requests中的files参数,不能用json,data之类的参数
- verify=False:这个参数的作用为:访问http时移除SSL验证,但是,移除认证后控制台总是抛出警告:(如图)
- 解决方法:在代码前,导入urllib3,并输入urllib3.disable_warnings(),就能解决
-
import urllib3 urllib3.disable_warnings()
- 参数res:请求的结果保存到res中
- 以文本的方式打印res