プロキシ

Estimated reading time: 1 minute

Ktor HTTP クライアントでは、マルチプラットフォーム用のコードでプロキシを使用することができます。 以下のドキュメントでは、 Ktor でプロキシを設定する方法について説明します。

マルチプラットフォームでの構成

プロキシの作成

プロキシを作成するために、依存ライブラリの追加をする必要はありません。 サポートされるプロキシの種類は、クライアントエンジンに依存します。 マルチプラットフォーム向けには、2種類のプロキシを構成できます

プロキシ構成を作成するには、 ProxyBuilder を使用します。 p

// HTTP プロキシの作成
val httpProxy = ProxyBuilder.http("http://my-proxy-server-url.com/")

// SOCKS プロキシの作成
val socksProxy = ProxyBuilder.socks(host = "127.0.0.1", port = 4001)

プロキシ認証と承認はエンジン固有であり、ユーザが手動で処理する必要があります。

プロキシの設定

マルチプラットフォーム用のコードでは、 HttpClientEngineConfig 内の ProxyConfig ビルダを用いてプロキシの設定をすることができます。

val client = HttpClient() {
    engine {
        proxy = httpProxy
    }
}

プラットフォーム固有の設定

Jvm

ProxyConfig クラスは JVM の Proxy クラスにマッピングされます。

val httpProxy = Proxy(Proxy.Type.HTTP, InetSocketAddress(4040))

多くの JVM 用クライアントエンジンでは、そのまま使用することができます。

Apache エンジンと CIO エンジンは HTTP プロキシのみ対応しています。 Jetty エンジンはプロキシに対応していません。

Native

ネイティブの ProxyConfig クラスは URL を使用してプロキシアドレスを指定できます。

val socksProxy = ProxyConfig(url = "socks://my-socks-proxy.com/")

サポートされるプロキシの種類はエンジンに依存します。 サポートされている URL を確認するには、エンジン自身が提供しているドキュメントを参照してください。

Js

プロキシの構成は、プラットフォームの制約上サポートされていません。