接口自動化之圖片上傳


文件上傳的接口和普通接口傳參類似,有細微區別

 

 

目錄

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

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM