Bagaimana untuk Mencetak Permintaan HTTP Mentah Menggunakan Permintaan Python?

Patricia Arquette
Lepaskan: 2024-10-23 12:09:30
asal
578 orang telah melayarinya

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

Kod ini mencetak permintaan HTTP lengkap sebagai:

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

a=1&b=2
Salin selepas log masuk

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!

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!