python-用requests庫處理form-data格式的參數


工作中,有一個上傳圖片的接口。邏輯是這樣的,先通過cid獲取token,再通過token來上傳圖片。

獲取token這些步驟先忽略,我們來看下上傳圖片的接口參數格式

POST data:
-----------------------------7d159c1302d0y0
Content-Disposition: form-data; name="message"
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit

{"delay_time":0,"attachments":[{"area_id":2,"expiretype":1,"form_field":"first_object","metadata":{"alarmtime":"1617068785","alarmtype":3,"cid": 753383264,"devicename":"測試","deviceserial":"68731188250","id":"687311882501519870247"},"url":""}],"body":{},"channel_id":0,"subject":""}
-----------------------------7d159c1302d0y0
Content-Disposition: form-data; name="first_object"; filename="pengyuyan.jpg"
Content-Type: image/jpeg
Content-Transfer-Encoding: binary

<actual file content, not shown here>
-----------------------------7d159c1302d0y0--

從格式中,可以看到有file文件上傳。看具體實現代碼

file_path = "C:\\Users\\admin\\Desktop\\images\\peng1.jpg"

data = {'message': '{"delay_time":0,"attachments":[{"area_id":2,"expiretype":1,"form_field":"first_object","metadata":{"alarmtime":"1617088512","alarmtype":3,"cid":753376406,"devicename":"測試","deviceserial":"68731188250","id":"687311882501519870247"},"url":""}],"body":{},"channel_id":0,"subject":"", "topic_id": 2}'}
files={
  'first_object':('pengyuyan',open(file_path,'rb'),'image/jpeg')  
}
#first_object格式:'first_object':(隨意指定文件名,目標文件,文件類型) 
 
         
res = requests.post(url=url,files=files,data=data) 

print(res.text)

參數中,不是文件參數的我們放到data里面,文件格式的,提取請求頭name的值作為字典的鍵,文件鍵值按照這種格式組織:{'first_object':(隨意指定文件名,目標文件,文件類型) }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM