91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

Python接口自動化之文件上傳/下載接口怎么實現

發布時間:2022-04-06 10:28:48 來源:億速云 閱讀:592 作者:iii 欄目:開發技術

今天小編給大家分享一下Python接口自動化之文件上傳/下載接口怎么實現的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

〇、前言

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

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

反之,文件下載就是將二進制格式的響應內容存儲到本地,并根據需要下載的文件的格式來寫文件名,例如: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. 代碼實現

(1)實現步驟:

構造文件數據,通過open函數以二進制方式打開文件

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

Python接口自動化之文件上傳/下載接口怎么實現

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

構造其他數據

{
    "title": "接口發起的文檔",
    "fileType": "pdf"
}

發送請求,將文件數據以 files 參數傳入,其他消息體數據通過 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": "接口發起的文檔",
                "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小學生蔡坨坨
# 時間:2022/3/12 21:04
# 功能:根據文件類型創建合同文檔
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": "接口發起的文檔",
                "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[]下載可選項,NORMAL(正文),ATTACHMENT(附件)
needCompressForOneFileBoolean是,默認單文件也壓縮當下載的文件僅一份時,是否壓縮

2. 代碼實現

# -*- coding:utf-8 -*-
# 作者:IT小學生蔡坨坨
# 時間: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"獲取返回內容
        # 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()

以上就是“Python接口自動化之文件上傳/下載接口怎么實現”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

保靖县| 汤原县| 兴国县| 遵义市| 彩票| 巧家县| 泸定县| 保康县| 陵川县| 赤水市| 文水县| 屯昌县| 京山县| 奇台县| 瑞安市| 皋兰县| 唐河县| 黔西县| 乌鲁木齐市| 翼城县| 确山县| 巴东县| 建宁县| 株洲县| 花垣县| 黄浦区| 凤台县| 化德县| 岫岩| 榆中县| 民乐县| 历史| 昭觉县| 民权县| 永年县| 嘉义市| 平罗县| 南康市| 临潭县| 林西县| 临颍县|