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