Bagaimana untuk Mencetak Permintaan HTTP Mentah dengan Permintaan Python?

Barbara Streisand
Lepaskan: 2024-10-23 12:19:01
asal
255 orang telah melayarinya

How to Print Raw HTTP Requests with Python Requests?

Mencetak Permintaan HTTP Mentah dengan Permintaan Python

Apabila bekerja dengan modul permintaan, mungkin perlu melihat maklumat mentah dan terperinci bagi permintaan HTTP di luar hanya pengepala. Artikel ini meneroka cara untuk mencetak permintaan HTTP lengkap, termasuk baris permintaan, pengepala dan kandungan.

Penyelesaian: Menggunakan PreparedRequest Object

Sejak versi 1.2.3 , modul permintaan memperkenalkan objek PreparedRequest. Objek ini mewakili bait tepat yang akan dihantar ke pelayan. Dengan menggunakan objek ini, adalah mungkin untuk mencetak permintaan seperti berikut:

<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):
    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>
Salin selepas log masuk

Kod ini mencetak permintaan HTTP lengkap dalam format yang boleh dibaca manusia:

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

a=1&b=2
Salin selepas log masuk

The Objek PreparedRequest memberikan pandangan terperinci pada permintaan HTTP yang dibina, yang boleh berguna untuk penyahpepijatan atau menganalisis trafik.

Untuk menghantar permintaan sebenarnya, anda boleh menggunakan kod berikut:

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

Atas ialah kandungan terperinci Bagaimana untuk Mencetak Permintaan HTTP Mentah dengan Permintaan Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!