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
Libérer: 2024-12-26 10:37:14
original
630 Les gens l'ont consulté

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)
Copier après la connexion

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)
Copier après la connexion

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)
Copier après la connexion

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
Copier après la connexion
  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
    }
)
Copier après la connexion
  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)
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal