最近在自己學著弄介面自動化框架,因為要封裝乙個傳送請求的父類,其中有考慮到上傳檔案,以及同時上傳檔案,和傳遞其他字段資料,遇到點小問題 這裡解決下。
參考文件
來自fastapi官方文件上傳檔案例項:
#!/usr/bin/env/python3
# -*- coding:utf-8 -*-
"""@project: api
@author: zy7y
@file: fapi.py
@ide: pycharm
@time: 2020/8/1
"""from fastapi import fastapi, file, uploadfile, form
async def create_upload_file(file_excel: uploadfile = file(...), username: str = form(...)):
# 讀取檔案
contents = await file_excel.read()
# 儲存本地
with open(file_excel.filename, "wb") as f:
f.write(contents)
return
if __name__ == '__main__':
import uvicorn
執行這個檔案:可以通過檢視介面文件
引數名引數說明
備註file_excel
檔案二進位制物件
不能為空
username
使用者名稱不能為空
引數名引數說明
備註msg
操作結果
filename
檔名稱username
使用者名稱
#!/usr/bin/env/python3
# -*- coding:utf-8 -*-
"""@project: apiautotest
@author: zy7y
@file: request_demo.py
@ide: pycharm
@time: 2020/8/1
"""import requests
# 上傳檔案介面
url = ''
# 上傳非檔案的引數資料
data =
# 上傳檔案型別的引數資料, 下面的 'file_excel' 是上面介面中對應的請求引數裡的檔案物件中的引數名,
file =
res = requests.post(url, data, files=file)
print(res.json())
結果:
/users/zy7y/pycharmprojects/apiautotest/venv/bin/python /users/zy7y/pycharmprojects/apiautotest/tools/demo.py
process finished with exit code 0
上傳檔案資料 Requests
可以通過 request 或 requests 上傳檔案 以 json 形式傳送post請求 multipart form data 一般使用來上傳檔案。定製報頭 報頭的資料型別為字典 若要定製多報頭,可使用 headers 更多 urllib python3 其他說明 map object at ...
7 Requests庫 超時設定 檔案上傳
將timeout作為引數項,若響應超過設定的時間後即停止等待響應,以防某些請求沒有響應而一直處於等待狀態 獲取響應時間 res.elapsed.total seconds 案例 import requests base url cookie r requests.get base url cooki...
HTTP協議上的檔案上傳
檔案上傳 tcp協議 1 http協議上的檔案上傳,最頻繁的應用場景了。rfc1867裡定義的標準http協議post報文格式如下 header 寫道 content type multipart form data body content type multipart form data,bou...