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

Memperkenalkan dan menggunakan klien web HTTPX Python

WBOY
Lepaskan: 2023-04-23 20:07:05
ke hadapan
1982 orang telah melayarinya

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

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"]

Salin selepas log masuk

Berikut ialah output skrip ringkas ini:

{'hello': 'world'}
Salin selepas log masuk

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

Salin selepas log masuk

Hasilnya ialah:

<Response [404 NOT FOUND]>
Salin selepas log masuk

Respons boleh dikembalikan secara eksplisit. Tambahkan pengendalian pengecualian ini:

try:
result.raise_for_status()
except Exception as exc:
print("woops", exc)

Salin selepas log masuk

Inilah hasilnya:

woops Client error '404 NOT FOUND' for url 'https://httpbin.org/status/404'
For more information check: https://httpstatuses.com/404

Salin selepas log masuk

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"]

Salin selepas log masuk

Contoh output:

{'source': 'custom-client'}
Salin selepas log masuk

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()

Salin selepas log masuk

Output:

{'authenticated': True, 'user': 'good_person'}
Salin selepas log masuk

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)

Salin selepas log masuk

Output:

'pretty_good_person'
Salin selepas log masuk

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!

Label berkaitan:
sumber:51cto.com
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan