mirror of
https://github.com/yhirose/cpp-httplib.git
synced 2026-04-12 03:38:30 +00:00
1.8 KiB
1.8 KiB
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_PROXYやHTTPS_PROXYは自動的には読まれません。必要ならアプリケーション側で読み取ってset_proxy()に渡してください。