Python 的 httpx
套件是一個複雜的 Web 用戶端。當你安裝它後,你就可以用它來從網站上取得資料。像往常一樣,安裝它最簡單的方法是使用 pip
工具:
$ python -m pip install httpx --user
要使用它,把它導入到Python 腳本中,然後使用 .get
函數從一個web 位址取得資料:
import httpx result = httpx.get("https://httpbin.org/get?hello=world") result.json()["args"]
下面是這個簡單腳本的輸出:
{'hello': 'world'}
預設情況下, httpx
不會在非200 狀態下引發錯誤。
試試這個程式碼:
result = httpx.get("https://httpbin.org/status/404") result
結果是:
<Response [404 NOT FOUND]>
可以明確地回傳一個回應。新增這個例外處理:
try: result.raise_for_status() except Exception as exc: print("woops", exc)
下面是結果:
woops Client error '404 NOT FOUND' for url 'https://httpbin.org/status/404' For more information check: https://httpstatuses.com/404
除了最簡單的腳本之外,使用一個自訂的客戶端是有意義的。除了不錯的效能改進,例如連接池,這也是一個配置客戶端的好地方。
例如, 你可以設定一個自訂的基本URL:
client = httpx.Client(base_url="https://httpbin.org") result = client.get("/get?source=custom-client") result.json()["args"]
輸出範例:
{'source': 'custom-client'}
這對用客戶端與一個特定的伺服器對話的典型場景很有用。例如,使用 base_url
# 和 auth
,你可以為認證的用戶端建立一個漂亮的抽象:
client = httpx.Client( base_url="https://httpbin.org", auth=("good_person", "secret_password"), ) result = client.get("/basic-auth/good_person/secret_password") result.json()
#輸出:
{'authenticated': True, 'user': 'good_person'}
你可以用它來做一件更棒的事情,就是在頂層的「主」 函數中建立客戶端,然後把它傳遞給其他函數。這可以讓其他函數使用客戶端,並讓它們與連接到本機 WSGI 應用的用戶端進行單元測試。
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)
輸出:
'pretty_good_person'
請造訪 python-httpx.org 以了解更多資訊、文件和教學課程。我發現它是一個與 HTTP 互動的優秀且靈活的模組。試一試,看看它能為你做些什麼。
以上是介紹並使用 Python 的 HTTPX Web 用戶端的詳細內容。更多資訊請關注PHP中文網其他相關文章!