Impression d'une requête HTTP brute dans les requêtes Python
Dans le module de requêtes de Python, il est possible d'imprimer la requête HTTP non modifiée, y compris la ligne de requête, en-têtes et contenu. Cela peut être utile à des fins de débogage ou pour inspecter la requête HTTP exacte envoyée.
À partir de la version 1.2.3 du module de requêtes, l'objet PreparedRequest a été introduit. Cet objet représente la requête HTTP entièrement construite, avec tous les en-têtes et le contenu. L'utilisation de la méthode préparer sur un objet de requête génère un objet PreparedRequest.
Pour imprimer la requête HTTP brute à l'aide de PreparedRequest, vous pouvez utiliser la fonction Pretty_print_POST présentée ci-dessous :
<code class="python">import requests # Example request req = requests.Request('POST', 'http://stackoverflow.com', headers={'X-Custom': 'Test'}, data='a=1&b=2') # Prepare the request prepared = req.prepare() def pretty_print_POST(req): print('{}\n{}\r\n{}\r\n\r\n{}'.format( '-----------START-----------', req.method + ' ' + req.url, '\r\n'.join('{}: {}'.format(k, v) for k, v in req.headers.items()), req.body, )) # Print the raw HTTP request pretty_print_POST(prepared) # Send the request (if desired) s = requests.Session() s.send(prepared)</code>
Cette fonction imprime le méthode de requête, URL, en-têtes et contenu de manière formatée.
Pour envoyer la requête réelle après l'avoir imprimée, vous pouvez utiliser la méthode d'envoi sur un objet Session de requêtes, comme indiqué dans l'exemple.
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!