Maison >développement back-end >Tutoriel Python >Comment capturer des requêtes HTTP dans des applications Python à l'aide de la bibliothèque de requêtes ?

Comment capturer des requêtes HTTP dans des applications Python à l'aide de la bibliothèque de requêtes ?

DDD
DDDoriginal
2024-11-16 09:14:03928parcourir

How to Capture HTTP Requests in Python Applications Using the Requests Library?

Inspecter les requêtes HTTP dans les applications Python

Identifier la source des erreurs lors des appels d'API peut être difficile, en particulier lorsque la réponse à l'erreur manque de détails spécifiques . Pour résoudre de tels problèmes, les fournisseurs d'API nécessitent souvent l'intégralité de la requête HTTP, y compris les en-têtes. Cet article présente une approche pratique pour capturer ces requêtes à l'aide de la bibliothèque de requêtes populaire.

Utilisation de la journalisation pour capturer les requêtes

Versions récentes des requêtes (1.x et supérieures) offrent un mécanisme de journalisation simple pour capturer les requêtes HTTP. En activant le débogage au niveau http.client, nous pouvons enregistrer à la fois la demande (y compris les en-têtes et le corps) et la réponse (y compris les en-têtes).

Mise en œuvre

Le L'extrait de code suivant montre comment activer la journalisation des requêtes HTTP :

import requests
import logging

# Enable debugging at http.client level
http_client.HTTPConnection.debuglevel = 1

# Initialize and configure logging
logging.basicConfig()
logging.getLogger().setLevel(logging.DEBUG)
requests_log = logging.getLogger("requests.packages.urllib3")
requests_log.setLevel(logging.DEBUG)
requests_log.propagate = True

# Make an HTTP request
requests.get('https://httpbin.org/headers')

En exécutant ce code, nous activons la journalisation des requêtes et stockez les données enregistrées dans la variable request_log. Nous pouvons ensuite accéder aux en-têtes et au corps de la requête à partir de cette variable selon nos besoins.

Exemple de sortie

Ce qui suit est un exemple de la sortie de débogage générée par le mécanisme de journalisation :

send: 'GET /headers HTTP/1.1\r\nHost: httpbin.org\r\nAccept-Encoding: gzip, deflate, compress\r\nAccept: */*\r\nUser-Agent: python-requests/1.2.0 CPython/2.7.3 Linux/3.2.0-48-generic\r\n\r\n'

Cette sortie contient l'intégralité de la requête HTTP, y compris la méthode HTTP, l'URI, les en-têtes et le corps de la requête (le cas échéant). En fournissant ces informations aux fournisseurs d'API, vous pouvez faciliter l'identification et la résolution des erreurs.

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