Heim  >  Artikel  >  Backend-Entwicklung  >  Wie drucke ich rohe HTTP-Anfragen mit Python-Anfragen?

Wie drucke ich rohe HTTP-Anfragen mit Python-Anfragen?

Barbara Streisand
Barbara StreisandOriginal
2024-10-23 12:19:01248Durchsuche

How to Print Raw HTTP Requests with Python Requests?

Rohe HTTP-Anfragen mit Python-Anfragen drucken

Beim Arbeiten mit dem Anfragemodul kann es erforderlich sein, die rohen, detaillierten Informationen von anzuzeigen eine HTTP-Anfrage, die über die Header hinausgeht. In diesem Artikel wird erläutert, wie Sie die vollständige HTTP-Anfrage ausdrucken, einschließlich der Anforderungszeile, Header und Inhalt.

Lösung: Verwenden des PreparedRequest-Objekts

Seit Version 1.2.3 Das Anforderungsmodul führte das PreparedRequest-Objekt ein. Dieses Objekt stellt die genauen Bytes dar, die an den Server gesendet werden. Durch die Verwendung dieses Objekts ist es möglich, eine Anfrage wie folgt hübsch zu drucken:

<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>

Dieser Code druckt die vollständige HTTP-Anfrage in einem für Menschen lesbaren Format:

-----------START-----------
POST http://stackoverflow.com/
Content-Length: 7
X-Custom: Test

a=1&b=2

The Das PreparedRequest-Objekt bietet einen detaillierten Blick auf die erstellte HTTP-Anfrage, was zum Debuggen oder Analysieren des Datenverkehrs nützlich sein kann.

Um die Anfrage tatsächlich zu senden, können Sie den folgenden Code verwenden:

<code class="python">s = requests.Session()
s.send(prepared)</code>

Das obige ist der detaillierte Inhalt vonWie drucke ich rohe HTTP-Anfragen mit Python-Anfragen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn