怎麼使用form-data形式上傳檔案請求

王林
發布: 2023-05-15 09:10:05
轉載
2455 人瀏覽過

雖然現在基本上都約定俗成的介面都用json形式請求

但是不可避免地有些介面需要傳文件流,此時就需要用form-data形式上傳了

#for.e:

存在以下接口,透過接口創建海報圖但需要上傳縮圖,

此時接口的Content-Type就不能是application/json ,而是multipart/form-data;

參數格式也是以表單形式傳入

postman中設定檔案流很簡單,設定問file格式,然後就可以在本機選擇檔上傳,見下圖

怎麼使用form-data形式上傳檔案請求

 實際請求介面就可以成功

怎麼使用form-data形式上傳檔案請求

使用python完成上方請求需要明確的請求方式及資料類型以及上傳檔案讀取檔案

import requests
import json
from requests_toolbelt.multipart.encoder import MultipartEncoder
 
url='http://XXX.xxx.xxx.xx:9900/api-marketing-center/poster/save'
 
data={'activityName':'我是个海报2',
        'backgroundPicUrl':'https://xxxxx/default/f865a1aa66adfe50d005bd840e2c3356.jpg',
        'copywriting':'我是个海报  看看我2',
        'endTime':'2021-08-14 16:00:00',
        'startTime':'2021-08-11 16:00:00',
        'giftPicUrl':'https://xxxxx/file/c363c3173ac7c02393bf60018031073d.PNG',
        'qrCodeUrl':'https://xxxxxx/file/c363c3173ac7c02393bf60018031073d.PNG',
        'posterUrlThumbnail':'文件'
        }
files = {"posterUrlThumbnail": open('C:/Users/Lenovo/Desktop/格式测试/12.PNG', "rb")}
 
headers={'AUTH_MERCHANTS_ID': '76',
'Authorization': 'Bearer ad8cbdf3-c827-470a-aba5-076f0f3a9628'}  
 
r=requests.post(url=url,params=data, headers=headers,files=files)
 
print(r.json())
 
#{'code': 0, 'msg': '操作成功', 'data': None}
登入後複製

data:輸入請求的參數,其中需要注意上傳檔案流的參數名稱

files = {"posterUrlThumbnail": open( 'C:/Users/Lenovo/Desktop/格式測試/12.PNG', "rb")}

posterUrlThumbnail為參數名稱用於賦值,開啟文件,讀取賦值

上方使用最簡單的寫死的headers,

呼叫requests函式庫的方法去請求

#即可得到結果

當然也可以複雜點封裝個登入方法,去呼叫登錄,取得token以及所需的頭部參數

以上是怎麼使用form-data形式上傳檔案請求的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:yisu.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!