検索

Httpx とは

Httpx は、最新の使いやすい HTTP クライアントとサーバーを提供する Python ライブラリです。 Httpx は Python の非同期フレームワークで動作し、WebSocket と HTTP/2 をサポートします。 Httpx は、優れたパフォーマンス、セキュリティ、さまざまなプロトコル、エンコーディング、認証スキームに対する柔軟な構成を提供します。

Httpx のインストール

Httpx ライブラリのインストールは非常に簡単です。 pip パッケージ マネージャーを使用して次のコマンドを実行するだけです:

pip install httpx

Python 3.7 以前を使用している場合は、Httpx の非同期依存関係 aiohttp をインストールする必要があります。

次のコマンドを実行してインストールできます。

pip install httpx[aiohttp]

HTTP リクエストの送信

Httpx を使用した HTTP リクエストの送信は非常に簡単です。 Httpx を使用して GET リクエストを送信する簡単な例を次に示します。

import httpx

response = httpx.get('https://www.baidu.com')
print(response.status_code)
print(response.text)

この例では、Httpx の get メソッドを使用して GET リクエストを送信しました。要求された URL は https://www.baidu.com です。このメソッドは、応答ステータス コードと応答テキストにアクセスするために使用できる Response オブジェクトを返します。

Httpx は、GET、POST、PUT、DELETE、HEAD、OPTIONS など、さまざまな HTTP メソッドをサポートしています。 Httpx メソッドを使用してこれらのリクエストを送信できます。

ここにいくつかの例があります:

import httpx

response = httpx.post('https://www.baidu.com', data={'key': 'value'})
response = httpx.put('https://www.baidu.com', data={'key': 'value'})
response = httpx.delete('https://www.baidu.com')
response = httpx.head('https://www.baidu.com')
response = httpx.options('https://www.baidu.com')

上記の例の各リクエストは、Httpx メソッドを使用して送信できます。これらのメソッドのほとんどは、データ、ヘッダー、クエリ パラメーターなどのパラメーターの受け渡しをサポートしています。

非同期 HTTP リクエストの送信

Httpx は非同期 HTTP リクエストもサポートしています。以下は、Httpx を使用して非同期 GET リクエストを送信する簡単な例です。

import httpx
import asyncio

async def get_request():
    async with httpx.AsyncClient() as client:
        response = await client.get('https://www.baidu.com')
        print(response.status_code)
        print(response.text)

asyncio.run(get_request())

この例では、Httpx の AsyncClient クラスを使用して非同期 GET リクエストを送信する get_request という名前の非同期関数を作成します。非同期関数では、async with ステートメントを使用して Httpx の非同期クライアントを作成します。この方法でクライアントを作成すると、リクエストの完了後にクライアントが自動的に閉じられます。次に、await キーワードを使用して応答を非同期に待機し、応答オブジェクトから応答ステータス コードと応答テキストにアクセスします。

同期リクエストと同様に、Httpx の非同期クライアントもさまざまな HTTP メソッドをサポートしています。

ここにいくつかの例があります:

import httpx
import asyncio

async def post_request():
    async with httpx.AsyncClient() as client:
        response = await client.post('https://www.baidu.com', data={'key': 'value'})
        print(response.status_code)
        print(response.text)

asyncio.run(post_request())

リクエスト ヘッダーの設定

HTTP リクエストを送信するときは、通常、リクエスト ヘッダーを設定する必要があります。 Httpx を使用すると、リクエスト メソッドで headers パラメータを渡すことでリクエスト ヘッダーを設定できます。

これは例です:

import httpx

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}

response = httpx.get('https://www.baidu.com', headers=headers)
print(response.status_code)
print(response.text)

この例では、headers パラメーターを使用して User-Agent という名前の要求ヘッダーを設定します。

リクエスト パラメータの設定

Httpx を使用すると、HTTP リクエストを送信するときにリクエスト パラメータを設定できます。

ここにいくつかの例があります:

import httpx

params = {'key1': 'value1', 'key2': 'value2'}

response = httpx.get('https://www.baidu.com', params=params)
print(response.status_code)
print(response.text)

この例では、params パラメーターを使用して 2 つのクエリ パラメーター key1 と key2 を設定します。

リクエスト本文の送信

POST、PUT、および DELETE リクエストを送信するときは、通常、リクエスト本文にデータを含める必要があります。 Httpx では、data パラメーターを使用してリクエスト本文にデータを設定できます。

次は例です:

import httpx

data = {'key': 'value'}

response = httpx.post('https://www.baidu.com', data=data)
print(response.status_code)
print(response.text)

この例では、data パラメーターを使用して、key という名前のリクエスト本文パラメーターを設定します。

JSON データの送信

Httpx では、json パラメーターを使用して JSON データを送信できます。

以下は例です:

import httpx

data = {'key': 'value'}

response = httpx.post('https://www.baidu.com', json=data)
print(response.status_code)
print(response.text)

この例では、json パラメーターを使用して、key という名前の JSON リクエスト本文パラメーターを設定します。

タイムアウトの設定

HTTP リクエストを送信するときは、通常、タイムアウトを設定する必要があります。 Httpx では、timeout パラメーターを使用してタイムアウトを設定できます。

これは例です:

import httpx

response = httpx.get('https://www.baidu.com', timeout=5)
print(response.status_code)
print(response.text)

この例では、timeout パラメーターを使用してタイムアウトを 5 秒に設定します。

エラー処理

Httpx は、問題の診断と解決に役立つさまざまな種類の例外をスローできます。一般的な例外をいくつか示します。

  • httpx.HTTPError: HTTP エラーが発生したときに発生します。

  • httpx.RequestError: リクエスト エラーが発生したときに発生します。

  • httpx.NetworkError: ネットワーク エラーが発生したときに発生します。

  • httpx.TimeoutException: タイムアウトが発生すると発生します。

これらの例外を処理する場合、try/excel ステートメントを使用して例外をキャッチし、適切なアクションを実行できます。以下に例を示します。

import httpx

try:
    response = httpx.get('https://www.baidu.com')
    response.raise_for_status()
except httpx.HTTPError as http_error:
    print(f'HTTP error occurred: {http_error}')
except httpx.RequestError as request_error:
    print(f'Request error occurred: {request_error}')
except httpx.NetworkError as network_error:
    print(f'Network error occurred: {network_error}')
except httpx.TimeoutException as timeout_error:
    print(f'Timeout error occurred: {timeout_error}')
else:
    print(response.status_code)
    print(response.text)

この例では、try/excel ステートメントを使用して、発生する可能性のあるすべての例外をキャッチし、例外の種類に基づいて適切なアクションを実行します。

証明書の検証

Httpx を使用すると、SSL 証明書を検証して、サーバーへの安全な接続を確保できます。デフォルトでは、HTTP は SSL 証明書を検証します。証明書の検証を無効にする必要がある場合は、verify パラメータを False に設定できます。

これは例です:

import httpx

response = httpx.get('https://www.baidu.com', verify=False)
print(response.status_code)
print(response.text)

この例では、verify パラメーターを False に設定して、SSL 証明書の検証を無効にします。

プロキシの使用

Httpx では、プロキシを使用して HTTP リクエストを送信できます。以下に例を示します。

import httpx

proxies = {
    'http://http-proxy-server:8080',
    'https://https-proxy-server:8080'
}

response = httpx.get('https://www.baidu.com', proxies=proxies)
print(response.status_code)
print(response.text)

この例では、proxies パラメータを使用して 2 つのプロキシ サーバーを設定します。

ファイルのアップロード

Httpx では、files パラメーターを使用してファイルをアップロードできます。以下に例を示します:

import httpx

files = {'file': ('file.txt', open('file.txt', 'rb'))}

response = httpx.post('https://www.baidu.com', files=files)
print(response.status_code)
print(response.text)

在这个示例中,我们使用 files 参数上传了名为 file.txt 的文件。

Httpx 允许您使用 cookies 参数发送 cookie。以下是一个示例:

import httpx

cookies = {'name': 'value'}

response = httpx.get('https://www.baidu.com', cookies=cookies)
print(response.status_code)
print(response.text)

在这个示例中,我们使用 cookies 参数发送了名为 name 的 cookie。

以上がPythonhttpxの使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事は亿速云で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
Pythonアレイをどのようにスライスしますか?Pythonアレイをどのようにスライスしますか?May 01, 2025 am 12:18 AM

Pythonリストスライスの基本的な構文はリストです[start:stop:step]。 1.STARTは最初の要素インデックス、2。ストップは除外された最初の要素インデックスであり、3.ステップは要素間のステップサイズを決定します。スライスは、データを抽出するためだけでなく、リストを変更および反転させるためにも使用されます。

どのような状況で、リストは配列よりもパフォーマンスが向上しますか?どのような状況で、リストは配列よりもパフォーマンスが向上しますか?May 01, 2025 am 12:06 AM

ListSoutPerformArraysIn:1)ダイナミシジョンアンドフレーケンティオン/削除、2)ストーリングヘテロゼンダタ、および3)メモリ効率の装飾、ButmayhaveslightPerformancostsinceNASOPERATIONS。

PythonアレイをPythonリストに変換するにはどうすればよいですか?PythonアレイをPythonリストに変換するにはどうすればよいですか?May 01, 2025 am 12:05 AM

toconvertapythonarraytoalist、usetheList()constructororageneratorexpression.1)importhearraymoduleandcreateanarray.2)useList(arr)または[xforxinarr] toconvertoalistは、largedatatessを変えることを伴うものです。

Pythonにリストが存在する場合、配列を使用する目的は何ですか?Pythonにリストが存在する場合、配列を使用する目的は何ですか?May 01, 2025 am 12:04 AM

choosearraysoverlistsinperbetterperformance andmemoryeficiencyspecificscenarios.1)largeNumericaldatasets:Araysreducememoryusage.2)パフォーマンス - クリティカル操作:ArraysOfferSpeedBoostsfortsfortsclikeappendedoring.3)タイプリー:Arrayesenforc

リストの要素と配列を繰り返す方法を説明します。リストの要素と配列を繰り返す方法を説明します。May 01, 2025 am 12:01 AM

Pythonでは、ループに使用し、列挙し、包括的なリストを通過することができます。 Javaでは、従来のループを使用し、ループを強化してアレイを通過することができます。 1。Pythonリストトラバーサル方法は、ループ、列挙、およびリスト理解のためのものです。 2。Javaアレイトラバーサル法には、従来のループとループ用の強化が含まれます。

Python Switchステートメントとは何ですか?Python Switchステートメントとは何ですか?Apr 30, 2025 pm 02:08 PM

この記事では、バージョン3.10で導入されたPythonの新しい「マッチ」ステートメントについて説明します。これは、他の言語のスイッチステートメントに相当するものです。コードの読みやすさを向上させ、従来のif-elif-elよりもパフォーマンスの利点を提供します

Pythonの例外グループとは何ですか?Pythonの例外グループとは何ですか?Apr 30, 2025 pm 02:07 PM

Python 3.11の例外グループは、複数の例外を同時に処理することで、同時シナリオと複雑な操作でエラー管理を改善します。

Pythonの関数注釈とは何ですか?Pythonの関数注釈とは何ですか?Apr 30, 2025 pm 02:06 PM

Pythonの関数注釈は、タイプチェック、ドキュメント、およびIDEサポートの関数にメタデータを追加します。それらはコードの読みやすさ、メンテナンスを強化し、API開発、データサイエンス、ライブラリの作成において重要です。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター