Maison >développement back-end >Tutoriel Python >Comment envoyer des requêtes Multipart/Form-Data en Python à l'aide de Requests et Requests-Toolbelt ?

Comment envoyer des requêtes Multipart/Form-Data en Python à l'aide de Requests et Requests-Toolbelt ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-26 10:37:14622parcourir

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

Envoi de données multipart/formulaire avec des requêtes en Python

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 .

Téléchargements de fichiers

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)

Soumission des données du formulaire

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)

Combiner des fichiers et des données de formulaire

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)

Support multipart avancé avec Requests-Toolbelt

La bibliothèque request-toolbelt fournit prise en charge multipart améliorée qui inclut des fonctionnalités avancées telles que :

  • Diffusion en continu de données téléchargements
  • Noms de fichiers personnalisés et types MIME
  • En-têtes supplémentaires pour chaque partie

Pour utiliser request-toolbelt, installez-le via pip install request-toolbelt et suivez ces étapes :

  1. Importer le nécessaire module :
from requests_toolbelt.multipart.encoder import MultipartEncoder
  1. Créer un objet 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
    }
)
  1. Make la requête HTTP :
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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn