Maison  >  Article  >  développement back-end  >  Comment imprimer la requête HTTP brute avec les requêtes Python ?

Comment imprimer la requête HTTP brute avec les requêtes Python ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-23 11:40:26864parcourir

How to Print the Raw HTTP Request with Python Requests?

Impression d'une requête HTTP brute dans les requêtes Python

Dans le module de requêtes de Python, il est possible d'imprimer la requête HTTP non modifiée, y compris la ligne de requête, en-têtes et contenu. Cela peut être utile à des fins de débogage ou pour inspecter la requête HTTP exacte envoyée.

À partir de la version 1.2.3 du module de requêtes, l'objet PreparedRequest a été introduit. Cet objet représente la requête HTTP entièrement construite, avec tous les en-têtes et le contenu. L'utilisation de la méthode préparer sur un objet de requête génère un objet PreparedRequest.

Pour imprimer la requête HTTP brute à l'aide de PreparedRequest, vous pouvez utiliser la fonction Pretty_print_POST présentée ci-dessous :

<code class="python">import requests

# Example request
req = requests.Request('POST', 'http://stackoverflow.com', headers={'X-Custom': 'Test'}, data='a=1&b=2')

# Prepare the request
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,
    ))

# Print the raw HTTP request
pretty_print_POST(prepared)

# Send the request (if desired)
s = requests.Session()
s.send(prepared)</code>

Cette fonction imprime le méthode de requête, URL, en-têtes et contenu de manière formatée.

Pour envoyer la requête réelle après l'avoir imprimée, vous pouvez utiliser la méthode d'envoi sur un objet Session de requêtes, comme indiqué dans l'exemple.

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