Impression de requêtes HTTP brutes en Python avec des requêtes
Lorsque vous travaillez avec le module Requêtes, vous pouvez rencontrer des situations dans lesquelles il est avantageux d'inspecter le brut Requête HTTP en cours d'envoi au serveur. Cela inclut non seulement les en-têtes mais également la ligne et le contenu de la requête.
Solution utilisant PreparedRequest :
À partir de la version 1.2.3, Requests a introduit l'objet PreparedRequest. Cet objet représente les « octets exacts qui seront envoyés au serveur », comme documenté ici : https://requests.readthedocs.io/en/latest/advanced/prepared-requests-and-api/
Pour imprimer la requête HTTP brute dans un joli format, vous pouvez exploiter l'objet PreparedRequest 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): """ Formats and prints the prepared request in a readable manner. """ 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) # Output: -----------START----------- POST http://stackoverflow.com/ Content-Length: 7 X-Custom: Test a=1&b=2</code>
Cela affichera la ligne de requête, les en-têtes et le corps de la requête dans un format visuellement agréable.
Remarque :Le formatage utilisé dans la fonction Pretty_print_POST est conçu pour des raisons de lisibilité et peut différer légèrement de la demande réelle envoyée.
Une fois que vous avez inspecté la demande préparée, vous pouvez procéder à envoyez la demande réelle à l'aide de la session de demandes comme suit :
<code class="python">s = requests.Session() s.send(prepared)</code>
Pour des informations plus détaillées sur les fonctionnalités avancées telles que les demandes préparées et l'API, reportez-vous à la documentation des demandes : https://requests.readthedocs.io/ fr/dernier/avancé/requêtes-préparées-et-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!