Proxy

预计阅读时间:2分钟

Ktor HTTP客户端允许在多平台代码中使用代理. 以下文档介绍了如何在ktor中配置代理.

Multiplatform configuration

Create proxy

您无需包括其他工件即可创建代理. 支持的代理类型特定于客户端引擎. 可以在多平台中配置两种类型的代理: HTTPSOCKS .

要创建代理配置,请使用ProxyBuilder工厂中的构建器:

// Create http proxy
val httpProxy = ProxyBuilder.http("http://my-proxy-server-url.com/")

// Create socks proxy
val socksProxy = ProxyBuilder.socks(host = "127.0.0.1", port = 4001)

代理身份验证和授权是特定于引擎的,应由用户手动处理.

Set proxy

可以使用HttpClientEngineConfig块中的ProxyConfig构建器以多平台代码配置代理

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

Platform-specific configuration

Jvm

ProxyConfig类映射到jvm上的Proxy类:

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

大多数Jvm客户端引擎都提供开箱即用的支持.

注意: ApacheCIO引擎仅支持HTTP代理. Jetty客户端引擎不支持任何代理.

Native

本机ProxyConfig类可以使用url确定代理地址:

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

支持的代理类型是特定于引擎的. 要查看支持的URL,请查阅引擎提供商的文档:

Js

平台限制不支持代理配置.

by  ICOPY.SITE