最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python接口自動(dòng)化之文件上傳/下載接口詳解

 更新時(shí)間:2022年04月05日 08:16:35   作者:IT小學(xué)生蔡坨  
在接口測(cè)試中,經(jīng)常會(huì)涉及到文件上傳以及下載,下面這篇文章主要給大家介紹了關(guān)于Python接口自動(dòng)化之文件上傳/下載接口的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(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)容存儲(chǔ)到本地,并根據(jù)需要下載的文件的格式來(lái)寫文件名,例如: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ù),通過(guò)open函數(shù)以二進(jìn)制方式打開文件

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

"file": (
    "", # 元組第一個(gè)值為文件名稱,沒(méi)有則取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ā)送請(qǐng)求,將文件數(shù)據(jù)以 files 參數(shù)傳入,其他消息體數(shù)據(jù)通過(guò) 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接口自動(dòng)化之文件上傳/下載接口的文章就介紹到這了,更多相關(guān)Python文件上傳/下載接口內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python編寫Windows Service服務(wù)程序

    Python編寫Windows Service服務(wù)程序

    這篇文章主要為大家詳細(xì)介紹了Python編寫Windows Service服務(wù)程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Python中請(qǐng)不要再用re.compile了

    Python中請(qǐng)不要再用re.compile了

    這篇文章主要給大家介紹了關(guān)于Python中為何不要再用re.compile的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • Python利用前序和中序遍歷結(jié)果重建二叉樹的方法

    Python利用前序和中序遍歷結(jié)果重建二叉樹的方法

    這篇文章主要介紹了Python利用前序和中序遍歷結(jié)果重建二叉樹的方法,實(shí)例分析了Python二叉樹的定義與遍歷操作技巧,需要的朋友可以參考下
    2016-04-04
  • Pytorch:Conv2d卷積前后尺寸詳解

    Pytorch:Conv2d卷積前后尺寸詳解

    這篇文章主要介紹了Pytorch:Conv2d卷積前后尺寸,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • pd.drop_duplicates刪除重復(fù)行的方法實(shí)現(xiàn)

    pd.drop_duplicates刪除重復(fù)行的方法實(shí)現(xiàn)

    drop_duplicates 方法實(shí)現(xiàn)對(duì)數(shù)據(jù)框 DataFrame 去除特定列的重復(fù)行,本文主要介紹了pd.drop_duplicates刪除重復(fù)行的方法實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • Python字符串處理實(shí)現(xiàn)單詞反轉(zhuǎn)

    Python字符串處理實(shí)現(xiàn)單詞反轉(zhuǎn)

    這篇文章主要為大家詳細(xì)介紹了Python字符串處理實(shí)現(xiàn)單詞反轉(zhuǎn)的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • python清空命令行方式

    python清空命令行方式

    今天小編就為大家分享一篇python清空命令行方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01
  • Python中單線程、多線程和多進(jìn)程的效率對(duì)比實(shí)驗(yàn)實(shí)例

    Python中單線程、多線程和多進(jìn)程的效率對(duì)比實(shí)驗(yàn)實(shí)例

    這篇文章主要介紹了Python單線程多線程和多進(jìn)程效率對(duì)比,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • Python使用Web框架Flask開發(fā)項(xiàng)目

    Python使用Web框架Flask開發(fā)項(xiàng)目

    本文詳細(xì)講解了Python使用Web框架Flask開發(fā)項(xiàng)目的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • python-redis-lock實(shí)現(xiàn)鎖自動(dòng)續(xù)期的源碼邏輯

    python-redis-lock實(shí)現(xiàn)鎖自動(dòng)續(xù)期的源碼邏輯

    這篇文章主要介紹了python-redis-lock實(shí)現(xiàn)鎖自動(dòng)續(xù)期的源碼邏輯,其中用到了多線程threading、弱引用weakref和Lua腳本等相關(guān)知識(shí),需要的朋友可以參考下
    2024-07-07

最新評(píng)論

汉中市| 乌鲁木齐县| 邵阳市| 赣榆县| 鄂州市| 常德市| 顺平县| 张北县| 吉首市| 吉林省| 南澳县| 长治市| 垦利县| 定南县| 浠水县| 昌吉市| 顺平县| 麻城市| 慈溪市| 贞丰县| 洞口县| 虎林市| 拉萨市| 桐城市| 永德县| 青铜峡市| 蒙山县| 阳西县| 库车县| 松原市| 斗六市| 农安县| 大港区| 昂仁县| 开江县| 都安| 灵丘县| 乐安县| 白河县| 鄄城县| 耒阳市|