Impression de requêtes HTTP brutes avec des requêtes Python
Lorsque vous travaillez avec le module de requêtes, il peut être nécessaire d'afficher les informations brutes et détaillées de une requête HTTP au-delà des en-têtes. Cet article explique comment imprimer la requête HTTP complète, y compris la ligne de requête, les en-têtes et le contenu.
Solution : Utilisation de l'objet PreparedRequest
Depuis la version 1.2.3 , le module de requêtes a introduit l'objet PreparedRequest. Cet objet représente les octets exacts qui seront envoyés au serveur. En utilisant cet objet, il est possible d'imprimer joliment une requête comme suit :
<code class="python">import requests req = requests.Request('POST','http://stackoverflow.com',headers={'X-Custom':'Test'},data='a=1&b=2') 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, )) pretty_print_POST(prepared)</code>
Ce code imprime la requête HTTP complète dans un format lisible par l'homme :
-----------START----------- POST http://stackoverflow.com/ Content-Length: 7 X-Custom: Test a=1&b=2
Le L'objet PreparedRequest fournit un aperçu détaillé de la requête HTTP construite, ce qui peut être utile pour le débogage ou l'analyse du trafic.
Pour envoyer réellement la requête, vous pouvez utiliser le code suivant :
<code class="python">s = requests.Session() s.send(prepared)</code>
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!