Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich eine Vorschau roher HTTP-Anfragen in Python mit „PreparedRequest“ von Requests anzeigen?

Wie kann ich eine Vorschau roher HTTP-Anfragen in Python mit „PreparedRequest“ von Requests anzeigen?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-23 15:46:02814Durchsuche

How to Preview Raw HTTP Requests in Python Using Requests' PreparedRequest?

Roh-HTTP-Anfragen in Python mit Requests drucken

Bei der Arbeit mit dem Requests-Modul kann es vorkommen, dass es von Vorteil ist, die Rohdaten zu überprüfen HTTP-Anfrage wird an den Server gesendet. Dazu gehören nicht nur die Header, sondern auch die Anforderungszeile und der Inhalt.

Lösung mit PreparedRequest:

Ab Version 1.2.3 führte Requests das PreparedRequest-Objekt ein. Dieses Objekt stellt die „genauen Bytes dar, die an den Server gesendet werden“, wie hier dokumentiert: https://requests.readthedocs.io/en/latest/advanced/prepared-requests-and-api/

Um die rohe HTTP-Anfrage in einem hübschen Format zu drucken, können Sie das PreparedRequest-Objekt wie folgt nutzen:

<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):
    """
    Formats and prints the prepared request in a readable manner.
    """
    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)

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

a=1&b=2</code>

Dadurch werden die Anforderungszeile, die Header und der Anforderungstext in einem optisch ansprechenden Format angezeigt.

Hinweis:Die in der Funktion „pretty_print_POST“ verwendete Formatierung dient der besseren Lesbarkeit und kann geringfügig von der tatsächlich gesendeten Anfrage abweichen.

Sobald Sie die vorbereitete Anfrage überprüft haben, können Sie fortfahren Senden Sie die eigentliche Anfrage mithilfe der Anfragesitzung wie folgt:

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

Ausführlichere Informationen zu erweiterten Funktionen wie vorbereitete Anfragen und API finden Sie in der Anfragedokumentation: https://requests.readthedocs.io/ en/latest/advanced/prepared-requests-and-api/

Das obige ist der detaillierte Inhalt vonWie kann ich eine Vorschau roher HTTP-Anfragen in Python mit „PreparedRequest“ von Requests anzeigen?. 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