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

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

WBOY
リリース: 2023-04-23 20:07:05
転載
1940 人が閲覧しました

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 までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート