Apidog

オールインワンのAPI開発プラットフォーム

API設計

API仕様書生成

API設計

API Mock

APIテスト自動化

無料登録
Home / 操作ガイド / HTTPXとは?その使い方を分かりやすく解説

HTTPXとは?その使い方を分かりやすく解説

HTTPXはPython用のHTTPクライアントライブラリとして、HTTPリクエストを便利に送信することができます。本文では、HTTPXの基本情報を紹介した上、サンプルコードでHTTPXの使い方も分かりやすく解説していきたいと思います。

HTTPXはPython用のHTTPクライアントライブラリとして、HTTPリクエストを便利に送信することができます。本文では、HTTPXの基本情報を紹介した上、サンプルコードでHTTPXの使い方も分かりやすく解説していきたいと思います。

💡
Apidogを使用すると、直感的なUIでどの種類のHTTPリクエストをより便利に送信できますので、HTTPリクエストを送信する場合、ぜひご活用ください。

また、Apidogは完全無料で利用可能なツールになりますが、次のボタンからこのツールを無料で取得することが可能です。
button

HTTPXとは

HTTPXはPython用のHTTPクライアントライブラリです。非同期処理に対応しており、高速で使いやすいAPIを提供しています。

HTTPX

HTTPXの特徴

HTTPXは非常に汎用されているPythonのライブラリとして、主に次のような特徴があります:

  1. 非同期操作サポート: asyncio、trio、curio、asyncioなどの非同期ライブラリと連携できます。
  2. HTTP/1.1およびHTTP/2サポート: 最新のHTTPプロトコルをサポートし、高速な通信が可能です。
  3. プールされたコネクション: 効率的な再利用のため、コネクションをプールする機能があります。
  4. レスポンスストリーミング: レスポンスの一部が到着次第、それを処理できます。
  5. アップロードとダウンロードの進捗表示: アップロードやダウンロード中の進捗をリアルタイムで表示できます。
  6. ファイル、バイトストリーム、同期、非同期のサポート: さまざまな形式のデータを送受信できます。
  7. リトライとバックオフのロジック: 一時的なエラーに対して自動的にリトライする機能があります。

HTTPXは requests ライブラリを使ったことのある人でも簡単に利用でき、古くからのHTTPクライアントライブラリに比べて高速で、非同期処理にも対応しているため、現代のウェブアプリケーション開発に適しています。

HTTPXの使い方|サンプルコードで解説

それでは、HTTPXを使って、HTTPリクエストを送信するには、どうしたらいいですか?次は、サンプルコードを使って、HTTPXの使い方を詳しく解説していこうと思います。

インストール

pip install httpx

GETリクエスト

import httpx

# 同期リクエスト
r = httpx.get('https://www.example.com')
print(r.status_code)
print(r.text)

# 非同期リクエスト 
async with httpx.AsyncClient() as client:
    r = await client.get('https://www.example.com')
    print(r.status_code)
    print(r.text)

POSTリクエスト

import httpx

# JSONデータを送信
data = {'key': 'value'}
r = httpx.post('https://httpbin.org/post', json=data)
print(r.json())

# 非同期でJSONを送信
async with httpx.AsyncClient() as client:
    r = await client.post('https://httpbin.org/post', json=data)
    print(r.json())

ヘッダーとパラメータの設定

headers = {'Authorization': 'Bearer TOKEN'}
params = {'query': 'value'}
r = httpx.get('https://example.com', headers=headers, params=params)

ファイルのアップロード

files = {'file': open('report.pdf', 'rb')}
r = httpx.post('https://example.com/upload', files=files)

レスポンスストリーミング

with httpx.stream('GET', 'https://example.com/large-file') as r:
    for data in r.iter_bytes():
        # データを処理

カスタムヘッダー、Cookie、クライアントセッション

client = httpx.Client(headers={'X-Custom': 'value'}, cookies={'user_id': '123'})
r = client.get('https://example.com')

HTTPXには他にも進捗表示、SSL証明書の検証、タイムアウト設定、プロキシ設定など多くの機能があります。公式ドキュメントを参照すると良いでしょう。

button

ApidogでHTTPリクエストをより便利に送信

HTTPXは、Python環境では広く使われているHTTPクライアントライブラリです、コードベースで習得するまでに一定のコストがかかります。そこで、ここではApidogという直感的で使いやすいGUIのAPIクライアントツールを皆さんに紹介します。Apidogを使用すると、どの種類のHTTPリクエストをも直感的なUIで送信できるので、非常に便利です。

ApidogでHTTPメソッドを指定

Apidogは、十数種のHTTPメソッドにも対応可能なので、GET、POST、PUT、DELETEなどのリクエストを送信する場合でも、上記画像のように直感的なUIで簡単に指定してリクエストを送信することができます。

HTTPリクエストを保存してドキュメンテーションも生成

また、Apidogを使ってHTTPリクエストを送信した後、そのリクエストを保存して再利用することも可能です。そして、必要に応じて、保存したHTTPリクエストからドキュメンテーションを簡単な1クリックだけで生成することもできます。

Apidogによって生成されたドキュメンテーションの例:

ApidogのAPI仕様書のサンプル
button

まとめ

本文ではHTTPXの基本的な使い方を、GETリクエスト、POSTリクエスト、ヘッダー/パラメータ設定、ファイルアップロード、レスポンスストリーミングなどのサンプルコードとともに解説しました。HTTPXを使えば、同期/非同期のどちらのスタイルでも、さまざまなHTTPリクエストを柔軟に送信できることがわかります。

一方で、HTTPXのようなライブラリを直接コードで使うには一定の習熟が必要です。そこで、GUIベースのAPIクライアントツール「Apidog」を活用するのも手です。ApidogではUIを操作するだけで簡単にHTTPリクエストを送信でき、リクエストを保存したり、ドキュメントを自動生成したりもできます。初心者でもAPIの開発が格段に容易になるでしょう。

HTTPXの強力な機能とApidogのような便利ツールを組み合わせることで、効率的でモダンなAPIの開発が可能になります。状況に応じて適切なツールを使い分けることをおすすめします。

Apidogのニュースレターを購読する

今すぐ購読すると、いつでもApidogから更新情報と最新観点を手に入れることができます。