天天看點

python3requests子產品上傳檔案_python3 requests庫檔案上傳與下載下傳實作詳解

在接口測試學習過程中,遇到了利用requests庫進行檔案下載下傳和上傳的問題。同樣,在真正的測試過程中,我們不可避免的會遇到上傳和下載下傳的測試。

檔案上傳:

url = ztx.host+'upload/uploadFile?CSRFToken='+self.getCSRFToken()#上傳檔案的接口位址

header = {

'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko',

'Cookie':'JSESSIONID=535422F931158199018FE8D19620B9A1-n1.t2; SERVERID=cd7972e881cb9bd27adc12dbcf73adc1|'

'1566374032|1566373045; loginWay_cookie=%7B%22index%22%3A%220%22%7D'

}#上傳檔案請求的頭資訊

data = {

'md5_val':'ab91fd09413553e724311ec78217df55',

'id':'WU_FILE_0',

'name':'浙江省建設工程計價成果檔案資料标準.doc',

'type':'application/msword',

# 'lastModifiedDate':'Mon Mar 11 16:21:05 UTC+0800 2019',

}#上傳檔案的請求參數

files = {

'file':('浙江省建設工程計價成果檔案資料标準.doc',#file是請求參數,要與接口文檔中的參數名稱一緻

open(r'C:\Users\Administrator\Desktop\浙江省建設工程計價成果檔案資料标準.doc','rb'),#已二進制的形式打開檔案

'application/msword')#上傳檔案的MIME檔案類型,這個必須要有

}#上傳的檔案

r = ztx.session.post(url=url,headers=header,data=data,files=files,verify=False)

注意:切記header頭資訊中不要添加Content-Type:xxxxxxx 這個字段,添加之後在發起請求的時候有可能找不到檔案(希望大家避過這個坑)

下載下傳檔案:

下載下傳檔案相對稍微簡單一點,請求類型為get請求

url = 'https://jypt.zhaotx.cn/upload/download/82F2413B8C13473AAECA512AA05124EA'

r = ztx.session.get(url=url,stream=True,verify=False)#以流的形式進行下載下傳檔案

if r.status_code ==200:#請求響應結果如果為200,将下載下傳内容寫入指定檔案中

with open(r'C:\Users\Administrator\Desktop\11.doc','wb') as f:

for chunk in r.iter_content(chunk_size=1024):#循環寫入,chunk_size是檔案大小

f.write(chunk)

以上就是本文的全部内容,希望對大家的學習有所幫助,也希望大家多多支援聚米學院。