Maison >développement back-end >Tutoriel Python >Comment envoyer des requêtes Multipart/Form-Data en Python à l'aide de Requests et Requests-Toolbelt ?
Requests offre la possibilité d'envoyer des requêtes multipart/form-data, permettant à la fois le téléchargement de fichiers et la soumission de données de formulaire .
Pour télécharger un fichier, spécifiez simplement une paire clé-valeur dans le paramètre files, où la clé est le nom du champ du formulaire et la valeur est un objet fichier ouvert ou un chemin de fichier. Par exemple :
import requests with open('image.jpg', 'rb') as f: file_data = {'image': f} response = requests.post('http://example.com/upload', files=file_data)
Pour envoyer les données du formulaire, vous pouvez également utiliser le paramètre files. Cependant, contrairement aux téléchargements de fichiers, les valeurs ne sont pas des objets de fichier mais des chaînes ou des octets.
Pour spécifier les données du formulaire, utilisez un dictionnaire où les clés sont les noms des champs du formulaire et les valeurs sont les données que vous souhaitez soumettre. Par exemple :
form_data = {'username': 'myusername', 'password': 'mypassword'} response = requests.post('http://example.com/login', files=form_data)
Vous pouvez simultanément télécharger des fichiers et soumettre des données de formulaire en utilisant à la fois les paramètres de fichiers et de données. Si data est une chaîne, elle sera utilisée à la place des fichiers. Si les données sont un dictionnaire, elles seront fusionnées avec des fichiers.
Par exemple :
form_data = {'comment': 'Hello, world!'} file_data = {'image': 'image.jpg'} response = requests.post('http://example.com/post', data=form_data, files=file_data)
La bibliothèque request-toolbelt fournit prise en charge multipart améliorée qui inclut des fonctionnalités avancées telles que :
Pour utiliser request-toolbelt, installez-le via pip install request-toolbelt et suivez ces étapes :
from requests_toolbelt.multipart.encoder import 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 } )
headers = {'Content-Type': mp_encoder.content_type} response = requests.post('http://example.com/post', data=mp_encoder, headers=headers)
Par en utilisant ces méthodes, vous pouvez envoyer de manière transparente des requêtes multipart/form-data en Python pour le téléchargement de fichiers et la soumission de données de formulaire.
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!