溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python3 requests庫文件上傳與下載實現(xiàn)詳解

發(fā)布時間:2020-09-25 19:27:46 來源:腳本之家 閱讀:474 作者:yaominghui 欄目:開發(fā)技術(shù)

在接口測試學(xué)習(xí)過程中,遇到了利用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':'浙江省建設(shè)工程計價成果文件數(shù)據(jù)標準.doc',
        'type':'application/msword',
        # 'lastModifiedDate':'Mon Mar 11 16:21:05 UTC+0800 2019',
    }#上傳文件的請求參數(shù)
    files = {
        'file':('浙江省建設(shè)工程計價成果文件數(shù)據(jù)標準.doc',#file是請求參數(shù),要與接口文檔中的參數(shù)名稱一致
            open(r'C:\Users\Administrator\Desktop\浙江省建設(shè)工程計價成果文件數(shù)據(jù)標準.doc','rb'),#已二進制的形式打開文件
            'application/msword')#上傳文件的MIME文件類型,這個必須要有
    }#上傳的文件
    r = ztx.session.post(url=url,headers=header,data=data,files=files,verify=False)

注意:切記header頭信息中不要添加Content-Type:xxxxxxx 這個字段,添加之后在發(fā)起請求的時候有可能找不到文件(希望大家避過這個坑)

下載文件:

下載文件相對稍微簡單一點,請求類型為get請求

url = 'https://jypt.zhaotx.cn/upload/download/82F2413B8C13473AAECA512AA05124EA'
    r = ztx.session.get(url=url,stream=True,verify=False)#以流的形式進行下載文件
    if r.status_code ==200:#請求響應(yīng)結(jié)果如果為200,將下載內(nèi)容寫入指定文件中
      with open(r'C:\Users\Administrator\Desktop\11.doc','wb') as f:
        for chunk in r.iter_content(chunk_size=1024):#循環(huán)寫入,chunk_size是文件大小
          f.write(chunk)

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI