欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python接口自動化之文件上傳/下載接口詳解

 更新時(shí)間:2022年04月05日 08:16:35   作者:IT小學(xué)生蔡坨  
在接口測試中,經(jīng)常會涉及到文件上傳以及下載,下面這篇文章主要給大家介紹了關(guān)于Python接口自動化之文件上傳/下載接口的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下

〇、前言

文件上傳/下載接口與普通接口類似,但是有細(xì)微的區(qū)別。

如果需要發(fā)送文件到服務(wù)器,例如:上傳文檔、圖片、視頻等,就需要發(fā)送二進(jìn)制數(shù)據(jù),上傳文件一般使用的都是 Content-Type: multipart/form-data 數(shù)據(jù)類型,可以發(fā)送文件,也可以發(fā)送相關(guān)的消息體數(shù)據(jù)。

反之,文件下載就是將二進(jìn)制格式的響應(yīng)內(nèi)容存儲到本地,并根據(jù)需要下載的文件的格式來寫文件名,例如:F:/合同文件.pdf。

一、文件上傳接口

1. 接口文檔

Request URL: /createbyfile

Request Method: POST

Content-Type: multipart/form-data

名稱類型是否必須描述
fileFile文檔文件
titleString文檔名稱
fileTypeString文件類型:doc, docx, txt, pdf, png, gif, jpg, jpeg, tiff, html, rtf, xls, txt

2. 代碼實(shí)現(xiàn)

(1)實(shí)現(xiàn)步驟:

構(gòu)造文件數(shù)據(jù),通過open函數(shù)以二進(jìn)制方式打開文件

文件上傳接口參數(shù)與普通post請求一樣,需要寫成Key和Value模式,Key為參數(shù)名稱file(也是組件的name屬性),Value為一個(gè)元組(與普通接口不同的地方)

"file": (
    "", # 元組第一個(gè)值為文件名稱,沒有則取None
    open(r"F:\pdf_file.pdf", "rb"), # 若第一個(gè)值非None,則取文件open打開的二進(jìn)制流,否則直接寫文件路徑,如"F:\pdf_file.pdf"
    "pdf" # 文件類型
)
"file": (
    None,
    "F:\pdf_file.pdf"
)

構(gòu)造其他數(shù)據(jù)

{
    "title": "接口發(fā)起的文檔",
    "fileType": "pdf"
}

發(fā)送請求,將文件數(shù)據(jù)以 files 參數(shù)傳入,其他消息體數(shù)據(jù)通過 data 、json 、 headers 、 cookies 等傳入

req = {
            "url": "127.0.0.1/v2/document/createbyfile",
            "method": "POST",
            "headers": {},
            "files": {"file": ("", open(r"F:\pdf_file.pdf", "rb"), "pdf")},
            "data": {
                "title": "接口發(fā)起的文檔",
                "fileType": "pdf"
            }
        }

(2)完整代碼

base_api.py

import requests
class BaseApi:
? ? @staticmethod
? ? def requests_http(req):
? ? ? ? # ** 解包
? ? ? ? result = requests.request(**req)
? ? ? ? return result

api/createbyfile.py

# -*- coding:utf-8 -*-
# 作者:IT小學(xué)生蔡坨坨
# 時(shí)間:2022/3/12 21:04
# 功能:根據(jù)文件類型創(chuàng)建合同文檔
from base_api import BaseApi
class Createbyfile:
? ? def createbyfile(self):
? ? ? ? req = {
? ? ? ? ? ? "url": "127.0.0.1/createbyfile",
? ? ? ? ? ? "method": "POST",
? ? ? ? ? ? "headers": {},
? ? ? ? ? ? "files": {"file": ("", open(r"F:\pdf_file.pdf", "rb"), "pdf")},
? ? ? ? ? ? "data": {
? ? ? ? ? ? ? ? "title": "接口發(fā)起的文檔",
? ? ? ? ? ? ? ? "fileType": "pdf"
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? res = BaseApi().requests_http(req)
? ? ? ? assert res.status_code == 200
? ? ? ? res_json = res.json()
? ? ? ? return res_json["result"]["documentId"]
if __name__ == '__main__':
? ? Createbyfile().createbyfile()

二、文件下載接口

1. 接口文檔

Request URL:/download

Request Method:GET

名稱類型是否必須描述
contractIdLongIDID
downloadItemsString[]下載可選項(xiàng),NORMAL(正文),ATTACHMENT(附件)
needCompressForOneFileBoolean是,默認(rèn)單文件也壓縮當(dāng)下載的文件僅一份時(shí),是否壓縮

2. 代碼實(shí)現(xiàn)

# -*- coding:utf-8 -*-
# 作者:IT小學(xué)生蔡坨坨
# 時(shí)間:2022/4/5 2:56
# 功能:下載合同
from base_api import BaseApi
class Download:
? ? def download(self):
? ? ? ? req = {
? ? ? ? ? ? "url": "127.0.0.1/download",
? ? ? ? ? ? "method": "GET",
? ? ? ? ? ? "headers": {},
? ? ? ? ? ? "params": {
? ? ? ? ? ? ? ? "contractId": 2947403075747869536,
? ? ? ? ? ? ? ? "downloadItems": ["NORMAL"],
? ? ? ? ? ? ? ? "needCompressForOneFile": False
? ? ? ? ? ? },
? ? ? ? }
? ? ? ? res = BaseApi().requests_http(req).content # 注意“.content"獲取返回內(nèi)容
? ? ? ? # with open("F:/response.zip", "wb") as f:
? ? ? ? with open("F:/response.pdf", "wb") as f:
? ? ? ? ? ? f.write(res)
? ? ? ? return res
if __name__ == '__main__':
? ? Download().download()

總結(jié)

到此這篇關(guān)于Python接口自動化之文件上傳/下載接口的文章就介紹到這了,更多相關(guān)Python文件上傳/下載接口內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python中的變量如何開辟內(nèi)存

    python中的變量如何開辟內(nèi)存

    python中的變量如何開辟內(nèi)存?今天小編就為大家介紹一下python中變量開辟內(nèi)存的方法。具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • python編輯用戶登入界面的實(shí)現(xiàn)代碼

    python編輯用戶登入界面的實(shí)現(xiàn)代碼

    這篇文章主要介紹了python編輯用戶登入界面的實(shí)現(xiàn)代碼,非常不錯(cuò),代碼簡單易懂,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-07-07
  • PyTorch 實(shí)現(xiàn)L2正則化以及Dropout的操作

    PyTorch 實(shí)現(xiàn)L2正則化以及Dropout的操作

    這篇文章主要介紹了PyTorch 實(shí)現(xiàn)L2正則化以及Dropout的操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • python的程序分支結(jié)構(gòu)用法及說明

    python的程序分支結(jié)構(gòu)用法及說明

    這篇文章主要介紹了python的程序分支結(jié)構(gòu)用法及說明,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • 10行Python代碼助你整理雜亂無章的文件

    10行Python代碼助你整理雜亂無章的文件

    這篇文章主要和大家分享一個(gè)簡單的小程序,只需要10行Python代碼,就能助你整理雜亂無章的文件,感興趣的小伙伴可以跟隨小編一起了解一下
    2023-02-02
  • Python正則表達(dá)式中的量詞符號與組問題小結(jié)

    Python正則表達(dá)式中的量詞符號與組問題小結(jié)

    這篇文章主要介紹了Python正則表達(dá)式中的量詞符號與組問題小結(jié),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • python實(shí)現(xiàn)控制臺輸出彩色字體

    python實(shí)現(xiàn)控制臺輸出彩色字體

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)控制臺輸出彩色字體,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • Python 并列和或者條件的使用說明

    Python 并列和或者條件的使用說明

    這篇文章主要介紹了Python 并列和或者條件的使用說明,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Python實(shí)現(xiàn)獲取當(dāng)前日期的所屬信息

    Python實(shí)現(xiàn)獲取當(dāng)前日期的所屬信息

    在Python中,處理日期和時(shí)間是一個(gè)常見的任務(wù),它涉及到許多方面,例如獲取日期的年、月、日、星期幾等等,本文將詳細(xì)介紹如何使用Python來獲取當(dāng)前日期的各種相關(guān)信息,需要的可以了解下
    2024-01-01
  • 使用python創(chuàng)建生成動態(tài)鏈接庫dll的方法

    使用python創(chuàng)建生成動態(tài)鏈接庫dll的方法

    這篇文章主要介紹了使用python創(chuàng)建生成動態(tài)鏈接庫dll的方法,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05

最新評論