Maison >développement back-end >Tutoriel Python >Comment capturer les requêtes HTTP en Python pour le débogage ?

Comment capturer les requêtes HTTP en Python pour le débogage ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-23 06:27:11850parcourir

How to Capture HTTP Requests in Python for Debugging?

Capturer les requêtes HTTP en Python pour le dépannage

Rencontrer des erreurs HTTP peut être frustrant, en particulier lorsque l'assistance externe nécessite des informations de demande détaillées. Cet article explique comment capturer l'intégralité de la requête HTTP envoyée depuis votre application Python à l'aide de la bibliothèque Requests. En activant la journalisation dans les versions récentes de Requests, vous pouvez obtenir des informations précieuses sur les en-têtes, les données et la réponse de la requête.

L'activation de la journalisation des requêtes

Requests exploite le module de journalisation Python pour configurer la verbosité de la journalisation. Pour activer la journalisation, modifiez simplement votre code comme suit :

import logging

# Enable debugging at http.client level
logging.basicConfig()
logging.getLogger().setLevel(logging.DEBUG)

# Set logging level for requests.packages.urllib3
requests_log = logging.getLogger("requests.packages.urllib3")
requests_log.setLevel(logging.DEBUG)
requests_log.propagate = True

Démonstration

Après avoir activé la journalisation, vous pouvez exécuter une requête GET vers une API publique comme httpbin.org :

import requests

requests.get('https://httpbin.org/headers')

Exemple de sortie

La sortie de journalisation comprendra des informations précieuses sur le request :

INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): httpbin.org
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'
reply: 'HTTP/1.1 200 OK\r\n'
header: Content-Type: application/json
header: Date: Sat, 29 Jun 2013 11:19:34 GMT
header: Server: gunicorn/0.17.4
header: Content-Length: 226
header: Connection: keep-alive
DEBUG:requests.packages.urllib3.connectionpool:"GET /headers HTTP/1.1" 200 226

La sortie affiche la requête complète, y compris les en-têtes et les 1 024 premiers octets du corps de la réponse. Ces informations peuvent être inestimables pour identifier la source des erreurs HTTP et communiquer avec les équipes d'assistance externes.

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