ホームページ >バックエンド開発 >Python チュートリアル >Python の HTTPX Web クライアントの紹介と使用

Python の HTTPX Web クライアントの紹介と使用

WBOY
WBOY転載
2023-04-23 20:07:051904ブラウズ

httpx:一个 Python Web 客户端

Python の httpx パッケージは、洗練された Web クライアントです。インストールすると、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'}

HTTP 応答

デフォルトでは、 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'

httpx

の詳細、ドキュメント、チュートリアルについては、python-httpx.org にアクセスしてください。これは HTTP と対話するための優れた柔軟なモジュールであると思います。試してみて、それがどのような効果をもたらすかを確認してください。

以上がPython の HTTPX Web クライアントの紹介と使用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事は51cto.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。