Mencetak Permintaan HTTP Mentah dalam Python dengan Permintaan
Apabila bekerja dengan modul Permintaan, anda mungkin menghadapi situasi di mana ia berfaedah untuk memeriksa mentah Permintaan HTTP dihantar ke pelayan. Ini termasuk bukan sahaja pengepala tetapi juga baris permintaan dan kandungan.
Penyelesaian menggunakan PreparedRequest:
Dari versi 1.2.3 dan seterusnya, Requests memperkenalkan objek PreparedRequest. Objek ini mewakili "bait tepat yang akan dihantar ke pelayan," seperti yang didokumenkan di sini: https://requests.readthedocs.io/en/latest/advanced/prepared-requests-and-api/
Untuk mencetak permintaan HTTP mentah dalam format yang cantik, anda boleh memanfaatkan objek PreparedRequest 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): """ 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>
Ini akan memaparkan baris permintaan, pengepala dan kandungan permintaan dalam format yang menarik secara visual.
Nota: Pemformatan yang digunakan dalam fungsi pretty_print_POST direka untuk kebolehbacaan dan mungkin berbeza sedikit daripada permintaan sebenar yang dihantar.
Setelah anda memeriksa permintaan yang disediakan, anda boleh meneruskan ke hantar permintaan sebenar menggunakan Sesi Permintaan seperti berikut:
<code class="python">s = requests.Session() s.send(prepared)</code>
Untuk maklumat lebih terperinci tentang ciri lanjutan seperti Permintaan yang Disediakan dan API, rujuk dokumentasi Permintaan: https://requests.readthedocs.io/ my/terkini/lanjutan/permintaan-dan-api yang disediakan/
Atas ialah kandungan terperinci Bagaimana untuk Pratonton Permintaan HTTP Mentah dalam Python Menggunakan Permintaan\' PreparedRequest?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!