Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich mit der Requests-Bibliothek Multipart-/Form-Data-Anfragen in Python senden?

Wie kann ich mit der Requests-Bibliothek Multipart-/Form-Data-Anfragen in Python senden?

Barbara Streisand
Barbara StreisandOriginal
2025-01-03 12:09:42732Durchsuche

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

Senden von „Multipart/Form-Data“ mit Anfragen in Python

Multipart/Form-Data ist eine gängige Kodierung, die zum Hochladen von Dateien und verwendet wird andere Daten an einen Webserver. Mit der Requests-Bibliothek in Python können Sie problemlos mehrteilige/Formulardatenanfragen senden.

Dateien senden

Um eine Datei zu senden, können Sie den Dateiparameter von verwenden die post()-Methode. Dieser Parameter erwartet ein Wörterbuch, in dem die Schlüssel die Formularfeldnamen und die Werte die hochzuladenden Dateiobjekte sind.

Formulardaten senden

Zusätzlich zu den Dateien können Sie auch kann Formulardaten auch über den Dateiparameter senden. Es ist jedoch wichtig zu beachten, dass Requests einen multipart/form-data POST anstelle des standardmäßigen application/x-www-form-urlencoded POST sendet, wenn Sie einen Dateiparameter angeben.

Um Formulardaten mit dem zu senden Mit dem Dateiparameter können Sie einfach ein String- oder Byte-Objekt als Wert des Formularfelds übergeben. Zum Beispiel:

import requests

files = {'foo': 'bar'}
response = requests.post('http://httpbin.org/post', files=files)

Anpassen von Dateiparametern

Sie können den Dateinamen, den Inhaltstyp und zusätzliche Header für jede Datei weiter steuern, indem Sie ein Tupel anstelle eines verwenden einzelnes String- oder Byte-Objekt. Das Tupel sollte enthalten:

  • Dateiname (optional)
  • Inhalt
  • Inhaltstyp (optional)
  • Zusätzliche Header (optional)

Für Beispiel:

files = {'foo': (None, 'bar')}  # No filename parameter

Senden mehrerer Felder mit demselben Namen

Sie können auch mehrere Felder mit demselben Namen senden, indem Sie eine Liste von Tupeln als Wert angeben Dateiparameter. Zum Beispiel:

files = {'foo': [(None, 'bar'), (None, 'baz')]}

Requests-Toolbelt verwenden

Das Requests-Toolbelt-Projekt bietet einen erweiterten Multipart-Encoder, der den Prozess des Sendens von Multipart-/Formulardatenanfragen vereinfacht . Mit diesem Encoder können Sie:

  • Anfragen von offenen Dateiobjekten streamen
  • Dateinamenparameter standardmäßig weglassen
  • Die im Multipart-Header verwendete Grenze steuern

Zum Beispiel:

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)

Das obige ist der detaillierte Inhalt vonWie kann ich mit der Requests-Bibliothek Multipart-/Form-Data-Anfragen in Python senden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn