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

Patricia Arquette
Freigeben: 2024-10-23 12:09:30
Original
578 Leute haben es durchsucht

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>
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Quelle:php
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!