Rumah > Artikel > pembangunan bahagian belakang > Memperkenalkan dan menggunakan klien web HTTPX Python
Python's httpx
Pakej ialah klien web yang canggih. Sebaik sahaja anda memasangnya, anda boleh menggunakannya untuk mendapatkan data daripada tapak web. Seperti biasa, cara termudah untuk memasangnya ialah menggunakan alat pip
:
$ python -m pip install httpx --user
Untuk menggunakannya, import ke dalam skrip Python dan kemudian gunakan fungsi .get
untuk dapatkannya daripada Dapatkan data daripada alamat web:
import httpx result = httpx.get("https://httpbin.org/get?hello=world") result.json()["args"]
Berikut ialah output skrip ringkas ini:
{'hello': 'world'}
Secara lalai, httpx
tidak akan Membuang ralat dalam status bukan 200.
Cuba kod ini:
result = httpx.get("https://httpbin.org/status/404") result
Hasilnya ialah:
<Response [404 NOT FOUND]>
Respons boleh dikembalikan secara eksplisit. Tambahkan pengendalian pengecualian ini:
try: result.raise_for_status() except Exception as exc: print("woops", exc)
Inilah hasilnya:
woops Client error '404 NOT FOUND' for url 'https://httpbin.org/status/404' For more information check: https://httpstatuses.com/404
Selain skrip yang paling mudah, gunakan bahagian Pelanggan tersuai yang masuk akal. Selain peningkatan prestasi yang bagus seperti pengumpulan sambungan, ini juga merupakan tempat yang bagus untuk mengkonfigurasi pelanggan.
Sebagai contoh, anda boleh menetapkan URL asas tersuai:
client = httpx.Client(base_url="https://httpbin.org") result = client.get("/get?source=custom-client") result.json()["args"]
Contoh output:
{'source': 'custom-client'}
Ini menggandingkan klien untuk bercakap dengan pelayan tertentu Senario biasa adalah berguna. Sebagai contoh, menggunakan base_url
dan auth
, anda boleh membina abstraksi yang bagus untuk pelanggan yang disahkan:
client = httpx.Client( base_url="https://httpbin.org", auth=("good_person", "secret_password"), ) result = client.get("/basic-auth/good_person/secret_password") result.json()
Output:
{'authenticated': True, 'user': 'good_person'}
Anda boleh Lebih bagus perkara yang perlu dilakukan dengan ini ialah membina klien dalam fungsi "utama" peringkat atas dan kemudian menyerahkannya ke fungsi lain. Ini membolehkan fungsi lain menggunakan klien dan menguji unitnya dengan klien disambungkan ke aplikasi WSGI tempatan.
def get_user_name(client): result = client.get("/basic-auth/good_person/secret_password") return result.json()["user"] get_user_name(client) 'good_person' def application(environ, start_response): start_response('200 OK', [('Content-Type', 'application/json')]) return [b'{"user": "pretty_good_person"}'] fake_client = httpx.Client(app=application, base_url="https://fake-server") get_user_name(fake_client)
Output:
'pretty_good_person'
Lawati python-httpx.org untuk mendapatkan maklumat lanjut, dokumentasi dan tutorial. Saya dapati ia merupakan modul yang sangat baik dan fleksibel untuk berinteraksi dengan HTTP. Cubalah dan lihat apa yang ia lakukan untuk anda.
Atas ialah kandungan terperinci Memperkenalkan dan menggunakan klien web HTTPX Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!