問題:如何使用 requests 函式庫在 Python 中傳送多部分錶單資料?雖然我了解如何附加文件,但我正在努力將標準表單資料合併到此類請求中。
答案:
當檔案傳送時,要求會自動處理多部分錶單資料指定參數,導致multipart/form-data POST 要求而不是application/x- www-form-urlencoded POST.
語法:
from requests import post response = post( url, files={ "form_field_name": "form_field_value", # No quotes needed for non-string values } )
範例:
response = post("http://httpbin.org/post", files={"foo": "bar"}) assert response.status_code == 200
高階控制>
使用元組進行自訂每個部分的檔案名稱、內容類型和附加標頭。元組組件包括:範例:
files = {"foo": (None, "bar")} # No filename specified
有序多個欄位:
使用元組列表對於有序或具有相同的多個欄位name.處理資料和檔案:
同時使用資料和檔案時,字串資料參數優先。否則,資料和文件都會合併在請求中。可選庫:
requests-toolbelt 專案提供高級多部分支持,允許:請求工具帶範例:
import MultipartEncoder from requests_toolbelt fields = { "foo": b"bar", # Fields support bytes objects "spam": ("spam.txt", open("spam.txt", "rb"), "text/plain") # Stream files } mp_encoder = MultipartEncoder(fields) response = post( url, data=mp_encoder, headers={"Content-Type": mp_encoder.content_type} )
注意: 對於requests-toolbelt 方法,不要使用files= 參數以MultipartEncoder 以資料有效負載發布。
以上是如何在Python中使用檔案和標準表單資料發送多部分錶單資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!