Files
cpp-httplib/docs-src/pages/ja/cookbook/c16-proxy.md
2026-04-10 18:16:02 -04:00

1.8 KiB
Raw Blame History

title, order, status
title order status
C16. プロキシを経由してリクエストを送る 16 draft

社内ネットワークや特定の経路を通したい場合、HTTPプロキシを経由してリクエストを送れます。set_proxy()でプロキシのホストとポートを指定するだけです。

基本の使い方

httplib::Client cli("https://api.example.com");
cli.set_proxy("proxy.internal", 8080);

auto res = cli.Get("/users");

プロキシ経由でリクエストが送られます。HTTPSの場合はCONNECTメソッドでトンネルが張られるので、cpp-httplib側で特別な設定は要りません。

プロキシに認証を設定する

プロキシ自体が認証を要求する場合は、set_proxy_basic_auth()set_proxy_bearer_token_auth()を使います。

cli.set_proxy("proxy.internal", 8080);
cli.set_proxy_basic_auth("user", "password");
cli.set_proxy_bearer_token_auth("token");

OpenSSLまたは他のTLSバックエンド付きでビルドしていれば、Digest認証も使えます。

cli.set_proxy_digest_auth("user", "password");

エンドのサーバー認証と組み合わせる

プロキシ認証と、エンドサーバーへの認証C05やC06は別物です。両方が必要なら、両方設定します。

cli.set_proxy("proxy.internal", 8080);
cli.set_proxy_basic_auth("proxy-user", "proxy-pass");

cli.set_bearer_token_auth("api-token"); // エンドサーバー向け

プロキシにはProxy-Authorization、エンドサーバーにはAuthorizationヘッダーが送られます。

Note: 環境変数のHTTP_PROXYHTTPS_PROXYは自動的には読まれません。必要ならアプリケーション側で読み取ってset_proxy()に渡してください。