Maison  >  Article  >  développement back-end  >  Comment capturer et imprimer des requêtes HTTP brutes à l'aide de Python ?

Comment capturer et imprimer des requêtes HTTP brutes à l'aide de Python ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-23 12:32:01872parcourir

How to Capture and Print Raw HTTP Requests Using Python?

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&amp;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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn