Heim  >  Artikel  >  Backend-Entwicklung  >  Wie erfasst und druckt man rohe HTTP-Anfragen mit Python?

Wie erfasst und druckt man rohe HTTP-Anfragen mit Python?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-23 12:32:01872Durchsuche

How to Capture and Print Raw HTTP Requests Using Python?

Roh-HTTP-Anfragen in Python mit Requests drucken

Bei Verwendung des Requests-Moduls kann es erforderlich sein, die gesamte Roh-HTTP-Anfrage zu untersuchen , einschließlich der Anforderungszeile, der Header und des Nachrichtentexts. In diesem Handbuch wird eine Technik zum Erfassen und Drucken der vollständigen HTTP-Rohanfrage erläutert.

Die kürzliche Hinzufügung des PreparedRequest-Objekts in Requests (v1.2.3) bietet eine Möglichkeit, genau das zu tun. Das PreparedRequest-Objekt stellt die HTTP-Anfrage dar, die an den Server gesendet wird, und bietet Zugriff auf ihre genauen Bytes.

Um die Anfrage hübsch auszudrucken, können wir den folgenden Python-Code nutzen:

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

Dieser Code erfasst effektiv die gesamte vorbereitete Anfrage, einschließlich der Anfragezeile, der Header und des Texts, und präsentiert sie in einem optisch ansprechenden Format. Die vorbereitete Anfrage kann dann mit dem folgenden Code an den Server gesendet werden:

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

Durch die Verwendung des PreparedRequest-Objekts erhalten Sie die Möglichkeit, die rohe HTTP-Anfrage gründlich zu prüfen und auszudrucken, bevor Sie sie an den Server senden. Dies kann besonders nützlich sein, um Fehler zu beheben und die komplizierten Details von HTTP-Anfragen zu verstehen.

Das obige ist der detaillierte Inhalt vonWie erfasst und druckt man rohe HTTP-Anfragen mit Python?. 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