Heim >Backend-Entwicklung >Python-Tutorial >Wie sende ich mehrteilige/Formulardatenanfragen in Python mit Requests und Requests-Toolbelt?

Wie sende ich mehrteilige/Formulardatenanfragen in Python mit Requests und Requests-Toolbelt?

Linda Hamilton
Linda HamiltonOriginal
2024-12-26 10:37:14617Durchsuche

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

Senden von Multipart-/Formulardaten mit Anfragen in Python

Requests bietet die Möglichkeit, Multipart-/Formulardatenanfragen zu senden, was sowohl das Hochladen von Dateien als auch die Übermittlung von Formulardaten ermöglicht .

Datei-Uploads

Um eine Datei hochzuladen, geben Sie einfach ein Schlüssel-Wert-Paar im Dateiparameter an, wobei die Der Schlüssel ist der Name des Formularfelds und der Wert ist ein geöffnetes Dateiobjekt oder ein Dateipfad. Zum Beispiel:

import requests

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

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

Formulardatenübermittlung

Um Formulardaten zu senden, können Sie auch den Dateiparameter verwenden. Anders als beim Hochladen von Dateien handelt es sich bei den Werten jedoch nicht um Dateiobjekte, sondern um Zeichenfolgen oder Bytes.

Um Formulardaten anzugeben, verwenden Sie ein Wörterbuch, in dem die Schlüssel die Formularfeldnamen und die Werte die Daten sind, die Sie übermitteln möchten. Zum Beispiel:

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

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

Kombinieren von Dateien und Formulardaten

Sie können gleichzeitig Dateien hochladen und Formulardaten senden, indem Sie sowohl die Datei- als auch die Datenparameter verwenden. Wenn Daten eine Zeichenfolge sind, werden sie anstelle von Dateien verwendet. Wenn es sich bei den Daten um ein Wörterbuch handelt, werden sie mit Dateien zusammengeführt.

Zum Beispiel:

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

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

Erweiterte Multipart-Unterstützung mit Requests-Toolbelt

Die Bibliothek „Requests-Toolbelt“ bietet Erweiterte Multipart-Unterstützung mit erweiterten Funktionen wie:

  • Streaming von Daten Uploads
  • Benutzerdefinierte Dateinamen und MIME-Typen
  • Zusätzliche Header für jeden Teil

Um „requests-toolbelt“ zu verwenden, installieren Sie es über pip install „requests-toolbelt“ und befolgen Sie diese Schritte :

  1. Importieren Sie das Notwendige Modul:
from requests_toolbelt.multipart.encoder import MultipartEncoder
  1. Erstellen Sie ein MultipartEncoder-Objekt:
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 die HTTP-Anfrage:
headers = {'Content-Type': mp_encoder.content_type}
response = requests.post('http://example.com/post', data=mp_encoder, headers=headers)

Durch die Verwendung Mit diesen Methoden können Sie nahtlos mehrteilige/Formulardatenanfragen in Python senden, sowohl für das Hochladen von Dateien als auch für die Übermittlung von Formulardaten.

Das obige ist der detaillierte Inhalt vonWie sende ich mehrteilige/Formulardatenanfragen in Python mit Requests und Requests-Toolbelt?. 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