Maison > développement back-end > Tutoriel Python > Comment imprimer des requêtes HTTP brutes avec des requêtes Python ?

Comment imprimer des requêtes HTTP brutes avec des requêtes Python ?

Barbara Streisand
Libérer: 2024-10-23 12:19:01
original
312 Les gens l'ont consulté

How to Print Raw HTTP Requests with Python Requests?

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>
Copier après la connexion

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
Copier après la connexion

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>
Copier après la connexion

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!

source:php
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal