Envoi de données Multipart/Form à l'aide de requêtes en Python
Multipart/form-data est un format de requête qui permet à la fois les données de formulaire et fichiers à envoyer en une seule demande. Pour utiliser ce format avec des requêtes en Python, spécifiez un paramètre de fichiers, qui doit être un dictionnaire où les clés sont des noms de paramètres de données de formulaire et les valeurs sont soit des chemins de fichiers, soit des tuples contenant le contenu du fichier.
L'exemple suivant illustre envoyer un fichier avec une valeur de formulaire texte :
import requests files = {'file_field': 'path/to/file.ext', 'text_field': 'text_value'} response = requests.post('http://example.com/upload', files=files)
Contrôler le nom de fichier et le type de contenu
Vous pouvez contrôler le nom de fichier et type de contenu de chaque partie en utilisant un tuple comme valeur dans le dictionnaire de fichiers. Le tuple doit contenir 2 à 4 éléments, comme suit :
Par exemple, pour spécifier un nom de fichier et un type de contenu pour une valeur de texte :
files = {'text_field': (None, 'text_value', 'text/plain')}
Spécifier plusieurs champs avec le même nom
Pour envoyer plusieurs champs avec le même nom, utilisez une liste de tuples comme valeur dans le dictionnaire de fichiers.
Utilisation de Requests-Toolbelt pour une prise en charge multipart avancée
Le projet request-toolbelt fournit des Prise en charge en plusieurs parties. Contrairement aux requêtes, par défaut, il ne définit pas de paramètre de nom de fichier et permet aux champs d'être diffusés à partir d'objets de fichiers ouverts.
Voici un exemple utilisant requêtes-toolbelt :
from requests_toolbelt.multipart.encoder import MultipartEncoder mp_encoder = MultipartEncoder( fields={ 'file_field': ('file.ext', open('path/to/file.ext', 'rb'), 'application/octet-stream'), 'text_field': 'text_value', } ) response = requests.post( 'http://example.com/upload', data=mp_encoder, headers={'Content-Type': mp_encoder.content_type} )
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!