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