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!