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'}
デフォルトでは、 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 中国語 Web サイトの他の関連記事を参照してください。