Inspection des requêtes HTTP dans les applications Python
Lors du dépannage des erreurs d'API, telles que celles rencontrées lors de l'appel de l'API de PayPal, il devient crucial d'inspecter le l'intégralité de la requête HTTP envoyée par l'application. Ces informations sont souvent requises par les équipes d'assistance pour identifier la cause du problème.
Exploiter la journalisation pour l'inspection des demandes
Versions modernes de la bibliothèque de demandes (1.x et ci-dessus) offrent une méthode simple pour afficher les requêtes HTTP : activer la journalisation. Les requêtes utilisent la configuration http.client et du module de journalisation pour contrôler la verbosité de la journalisation.
Démonstration :
import requests import logging # Enable debugging at HTTP level http_client.HTTPConnection.debuglevel = 1 # Initialize logging logging.basicConfig() logging.getLogger().setLevel(logging.DEBUG) requests_log = logging.getLogger("requests.packages.urllib3") requests_log.setLevel(logging.DEBUG) requests_log.propagate = True requests.get('https://httpbin.org/headers')
Exemple de sortie :
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
Cette sortie fournit des informations détaillées sur la requête HTTP, y compris les en-têtes et la première partie de la réponse. Le corps complet de la réponse n’est pas enregistré. Ainsi, l'activation de la connexion aux requêtes offre un moyen simple d'inspecter les requêtes HTTP et d'aider au débogage des problèmes d'API.
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!