Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Memperkenalkan dan menggunakan klien web HTTPX Python

Memperkenalkan dan menggunakan klien web HTTPX Python

WBOY
WBOYke hadapan
2023-04-23 20:07:051881semak imbas

httpx:一个 Python Web 客户端

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'}

Respon HTTP

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

Pelanggan tersuai

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'

Cuba httpx

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!

Kenyataan:
Artikel ini dikembalikan pada:51cto.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam