Impression de requêtes HTTP brutes en Python à l'aide de requêtes
Lors de l'utilisation du module Requêtes, vous pouvez rencontrer le besoin d'examiner l'intégralité de la requête HTTP brute , y compris la ligne de demande, les en-têtes et le corps du message. Ce guide explore une technique pour capturer et imprimer la requête HTTP brute complète.
L'ajout récent de l'objet PreparedRequest dans Requests (v1.2.3) fournit un moyen de faire exactement cela. L'objet PreparedRequest représente la requête HTTP qui sera envoyée au serveur, donnant accès à ses octets exacts.
Pour imprimer joliment la requête, nous pouvons exploiter le code Python suivant :
<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): """ Pretty-print the prepared request. Note: The formatting used here may differ from the actual request. """ 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 capture efficacement l'intégralité de la demande préparée, y compris la ligne de demande, les en-têtes et le corps, et la présente dans un format visuellement attrayant. La requête préparée peut ensuite être envoyée au serveur à l'aide du code suivant :
<code class="python">s = requests.Session() s.send(prepared)</code>
En utilisant l'objet PreparedRequest, vous avez la possibilité d'inspecter et d'imprimer minutieusement la requête HTTP brute avant de l'envoyer au serveur. Cela peut être particulièrement utile pour déboguer et comprendre les détails complexes des requêtes HTTP.
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!