首頁 > 後端開發 > Python教學 > 如何使用 Requests 函式庫在 Python 中傳送 Multipart/Form-Data 請求?

如何使用 Requests 函式庫在 Python 中傳送 Multipart/Form-Data 請求?

Barbara Streisand
發布: 2025-01-03 12:09:42
原創
728 人瀏覽過

How can I send Multipart/Form-Data requests in Python using the Requests library?

在Python 中透過要求發送「Multipart/Form-Data」

Multipart/form-data 是一種常見的編碼,用於上傳檔案和其他資料到網路伺服器。使用Python中的Requests庫,您可以輕鬆發送多部分/表單資料請求。

傳送文件

要傳送文件,您可以使用files參數post() 方法。此參數需要一個字典,其中鍵是表單欄位名稱,值是要上傳的檔案物件。

傳送表單資料

除了檔案之外,您還可以也可以使用 files 參數傳送表單資料。但是,需要注意的是,當您指定 files 參數時,Requests 將發送 multipart/form-data POST 而不是預設的 application/x-www-form-urlencoded POST。

要使用files 參數,您可以簡單地傳遞字串或位元組物件作為表單欄位的值。例如:

import requests

files = {'foo': 'bar'}
response = requests.post('http://httpbin.org/post', files=files)
登入後複製

自訂檔案參數

您可以使用元組而不是元組來進一步控制每個檔案的檔案名稱、內容類型和附加標頭單一字串或位元組物件。元組應包含:

  • 檔名(可選)
  • 內容
  • 內容類型(可選)
  • 其他標頭(可選)

對於範例:

files = {'foo': (None, 'bar')}  # No filename parameter
登入後複製

發送具有相同名稱的多個欄位

您也可以透過提供元組清單作為值來傳送具有相同名稱的多個欄位檔案參數。例如:

files = {'foo': [(None, 'bar'), (None, 'baz')]}
登入後複製

使用Requests-Toolbelt

requests-toolbelt專案提供了一個高階的多部分編碼器,可以簡化發送多部分/表單資料請求的過程。使用此編碼器,您可以:

  • 從開啟的檔案物件串流要求
  • 預設省略檔案名稱參數
  • 控制多重部分標頭使用的邊界

例如:

from requests_toolbelt.multipart.encoder import MultipartEncoder

mp_encoder = MultipartEncoder(
    fields={
        'foo': 'bar',
        'spam': ('spam.txt', open('spam.txt', 'rb'), 'text/plain'),
    }
)
headers = {'Content-Type': mp_encoder.content_type}
response = requests.post('http://httpbin.org/post', data=mp_encoder, headers=headers)
登入後複製

以上是如何使用 Requests 函式庫在 Python 中傳送 Multipart/Form-Data 請求?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板