Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mencetak Permintaan HTTP Mentah Menggunakan Permintaan Python?

Bagaimana untuk Mencetak Permintaan HTTP Mentah Menggunakan Permintaan Python?

Patricia Arquette
Patricia Arquetteasal
2024-10-23 12:09:30570semak imbas

How to Print Raw HTTP Requests Using Python Requests?

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!

Kenyataan:
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