Lorsque vous rencontrez des erreurs liées à l'API, il devient souvent nécessaire de fournir la requête HTTP complète à l'équipe d'assistance pour une enquête plus approfondie . Cela inclut non seulement la charge utile de la réponse, mais également les en-têtes de requête.
Dans les applications Python, cela peut être réalisé en utilisant les dernières versions de la bibliothèque de requêtes (1.x et supérieures). Requests exploite le module de journalisation pour contrôler la verbosité des requêtes HTTP. En activant le mode débogage au niveau http.client, vous pouvez capturer l'intégralité de la requête, y compris les en-têtes et les données.
L'extrait de code suivant illustre comment activer la journalisation du débogage :
import requests import logging # Enable HTTP client debugging http_client.HTTPConnection.debuglevel = 1 # Configure loggers 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')
Lorsque le code est exécuté, vous observerez la sortie de débogage suivante :
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 un journal détaillé de la requête, y compris tous les en-têtes et le code d'état de la réponse.
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!