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.
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
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')
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!