Mencetak Permintaan HTTP Mentah dengan Permintaan Python
Pustaka Permintaan Python memudahkan permintaan HTTP, tetapi memahami permintaan HTTP mentah boleh menjadi berharga untuk penyahpepijatan dan analisis. Artikel ini meneroka cara untuk mengakses dan mencetak permintaan HTTP yang lengkap, termasuk baris permintaan, pengepala dan kandungan.
Sebelum ini, mengekstrak permintaan mentah yang diperlukan untuk mengakses atribut permintaan, yang hanya menyediakan pengepala. Walau bagaimanapun, dalam versi 1.2.3, Requests memperkenalkan objek PreparedRequest, yang merangkum bait tepat yang akan dihantar ke pelayan.
Untuk menggunakan PreparedRequest, cipta objek permintaan dan gunakan kaedah prepare(). Output kemudiannya boleh dipretifikasi untuk kejelasan:
<code class="python">import requests # Create a request req = requests.Request('POST', 'http://stackoverflow.com', headers={'X-Custom': 'Test'}, data='a=1&b=2') # Prepare the request (encodes it to bytes) prepared = req.prepare() # Define a function to prettify the POST request def pretty_print_POST(req): """Prints the request in a human-readable format.""" 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, )) # Prettify the prepared request pretty_print_POST(prepared) # Send the actual request using a Session object s = requests.Session() s.send(prepared)</code>
Kod ini mencetak permintaan HTTP lengkap sebagai:
-----------START----------- POST http://stackoverflow.com/ Content-Length: 7 X-Custom: Test a=1&b=2
Pendekatan ini membolehkan pemeriksaan permintaan yang dihantar ke pelayan, memudahkan penyahpepijatan dan memahami kitaran hayat tindak balas permintaan.
Atas ialah kandungan terperinci Bagaimana untuk Mencetak Permintaan HTTP Mentah Menggunakan Permintaan Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!