ホームページ >バックエンド開発 >Python チュートリアル >Requests と Requests-Toolbelt を使用して Python でマルチパート/フォームデータ リクエストを送信する方法

Requests と Requests-Toolbelt を使用して Python でマルチパート/フォームデータ リクエストを送信する方法

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-26 10:37:14622ブラウズ

How to Send Multipart/Form-Data Requests in Python using Requests and Requests-Toolbelt?

Python でのリクエストによるマルチパート/フォーム データの送信

リクエストでは、マルチパート/フォーム データ リクエストを送信する機能が提供され、ファイルのアップロードとフォーム データの送信の両方が可能になります。 .

ファイルのアップロード

ファイルをアップロードするには、キーと値のペアを指定するだけです。 files パラメータ。キーはフォーム フィールド名、値は開いているファイル オブジェクトまたはファイル パスです。例:

import requests

with open('image.jpg', 'rb') as f:
    file_data = {'image': f}

response = requests.post('http://example.com/upload', files=file_data)

フォーム データの送信

フォーム データを送信するには、files パラメーターを使用することもできます。ただし、ファイルのアップロードとは異なり、値はファイル オブジェクトではなく文字列またはバイトです。

フォーム データを指定するには、キーがフォーム フィールド名、値が送信するデータであるディクショナリを使用します。例:

form_data = {'username': 'myusername', 'password': 'mypassword'}

response = requests.post('http://example.com/login', files=form_data)

ファイルとフォーム データの結合

file パラメーターと data パラメーターの両方を使用して、ファイルのアップロードとフォーム データの送信を同時に行うことができます。データが文字列の場合、ファイルの代わりにそれが使用されます。データが辞書の場合、ファイルとマージされます。

例:

form_data = {'comment': 'Hello, world!'}
file_data = {'image': 'image.jpg'}

response = requests.post('http://example.com/post', data=form_data, files=file_data)

Requests-Toolbelt による高度なマルチパート サポート

requests-toolbelt ライブラリは、次のような高度な機能を含む強化されたマルチパート サポート:

  • ストリーミング データアップロード
  • カスタム ファイル名と MIME タイプ
  • 各部分の追加ヘッダー

requests-toolbelt を使用するには、pip installrequests-toolbelt 経由でインストールし、次の手順に従います。 :

  1. 必要なものをインポートしますモジュール:
from requests_toolbelt.multipart.encoder import MultipartEncoder
  1. MultipartEncoder オブジェクトの作成:
mp_encoder = MultipartEncoder(
    fields={
        'field_name': 'field_value',
        ('file_name', 'file_content', 'file_type'),
        # Other form data fields and files can be added here
    }
)
  1. Make HTTP request:
headers = {'Content-Type': mp_encoder.content_type}
response = requests.post('http://example.com/post', data=mp_encoder, headers=headers)

これらのメソッドを利用すると、ファイルのアップロードとフォーム データの送信の両方について、Python でマルチパート/フォーム データ リクエストをシームレスに送信できます。

以上がRequests と Requests-Toolbelt を使用して Python でマルチパート/フォームデータ リクエストを送信する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。