文件上傳的接口和普通接口傳參類似,有細微區別
目錄
1、文件上傳參數格式
2、舉個栗子
1、文件上傳參數格式
第一步:用fiddler抓取文件上傳接口的參數

注:fakepath是瀏覽器為了安全,顯示的一種路徑,填寫時,可以以真實為准
文件上傳接口參數與普通post請求接口一樣,需要寫成key和value模式,key為name值,value為一個元組(與普通接口不同的地方),
name取值:name取Name這一欄里面的“name”的值
value取值:元組第一個值取filename的值,沒有取None;第二個值,第一個值非None則取文件open打開的二進制流,否則取value的值;第三個值取Content-Type對應的值,若無則不填
實現代碼如下:
u={
"localUrl":(None,"E:\\1.png"),
"imgFile":("1.png",open("E:\\1.png","rb"),"image/png")
}
第二步:
發送post請求時,不再是data或者json,而是files
requests.post(url,files=X)
2、舉個栗子
向一個網站傳圖片
# coding:utf-8
import requests
url1="http://mysrc.sinaapp.com/accounts/login/"
s=requests.session()
r=s.get(url1)
#使用cookies的set方法將cookies信息填進去
c=requests.cookies.RequestsCookieJar()
#域名一定要填寫,不然會報錯
c.set('csrftoken','efptBQUQSxN3AfWcjZAvWw0Kbtu1EjVz',path='/', domain='mysrc.sinaapp.com')
c.set('sessionid','be2d02ddfe45681a852d21da7036f858',path='/', domain='mysrc.sinaapp.com')
#更新一下cookies
s.cookies.update(c)
url2="http://mysrc.sinaapp.com/file_upload/?uuid=ec11f91e85b411e8930ebb639de404ef&dir=image"
u={
"localUrl":(None,"1.png"),
"imgFile":("1.png",open("D:\\1.png","rb"),"image/png")
}
r1=s.post(url2,files=u).json() #文件上傳參數用files
print r1
