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

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

Patricia Arquette
Patricia ArquetteOriginal
2024-10-23 12:09:30669Durchsuche

How to Print Raw HTTP Requests Using Python Requests?

Roh-HTTP-Anfragen mit Python-Anfragen drucken

Die Python-Requests-Bibliothek vereinfacht HTTP-Anfragen, aber das Verständnis der Roh-HTTP-Anfrage kann für das Debuggen hilfreich sein und Analyse. In diesem Artikel wird erläutert, wie Sie auf die vollständige HTTP-Anfrage zugreifen und diese ausdrucken können, einschließlich der Anforderungszeile, der Header und des Inhalts.

Zuvor war zum Extrahieren der Rohanforderung der Zugriff auf das Anforderungsattribut erforderlich, das nur die Header bereitstellte. In Version 1.2.3 führte Requests jedoch das PreparedRequest-Objekt ein, das die genauen Bytes kapselt, die an den Server gesendet werden.

Um PreparedRequest zu verwenden, erstellen Sie ein Anforderungsobjekt und verwenden Sie die Prepare()-Methode. Die Ausgabe kann dann zur Verdeutlichung verschönert werden:

<code class="python">import requests

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

# Prepare the request (encodes it to bytes)
prepared = req.prepare()

# Define a function to prettify the POST request
def pretty_print_POST(req):
    """Prints the request in a human-readable format."""
    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,
    ))

# Prettify the prepared request
pretty_print_POST(prepared)

# Send the actual request using a Session object
s = requests.Session()
s.send(prepared)</code>

Dieser Code gibt die vollständige HTTP-Anfrage aus als:

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

a=1&b=2

Dieser Ansatz ermöglicht die Prüfung der an den Server gesendeten Anfrage und erleichtert so die Ausgabe Debuggen und Verstehen des Anforderungs-Antwort-Lebenszyklus.

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