Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich mit der Requests-Bibliothek Multipart-/Form-Data-Anfragen in Python senden?
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:
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:
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!