代理

class Proxy


表示可供 CronetEngine 使用的代理。

通过代理发送 HTTP 请求的方式取决于多种因素。例如:所用代理的类型、所用 HTTP 版本,以及请求是发送到具有 http 还是 https URI scheme 的目标。此外,是否通过代理建立隧道也取决于这些因素。

摘要

嵌套类型

控制通过 HTTP CONNECT 建立的隧道。

响应 onResponseReceived 调用时可执行的操作。

表示发送到代理服务器的 HTTP CONNECT 请求。

@Retention(value = RetentionPolicy.SOURCE)
@IntDef(value = )
annotation Proxy.Scheme

定义代理时支持的方案。

常量

const Int

与代理本身建立明文连接。

const Int

与代理本身建立安全连接。

公共函数

java-static Proxy
createHttpProxy(
    @Proxy.Scheme scheme: Int,
    host: String,
    port: @IntRange(from = 0, to = 65535) Int,
    executor: Executor,
    callback: Proxy.HttpConnectCallback
)

构造 HTTP 代理。

常量

SCHEME_HTTP

const val SCHEME_HTTP = 0: Int

与代理本身建立明文连接。

SCHEME_HTTPS

const val SCHEME_HTTPS = 1: Int

与代理本身建立安全连接。

公共函数

createHttpProxy

java-static fun createHttpProxy(
    @Proxy.Scheme scheme: Int,
    host: String,
    port: @IntRange(from = 0, to = 65535) Int,
    executor: Executor,
    callback: Proxy.HttpConnectCallback
): Proxy

构造 HTTP 代理。

通过 HTTP 代理发送 HTTP 请求时,是否调用 callback 取决于目标的 URI scheme:

  • 对于具有 https URI scheme 的目标,CronetEngine 会通过代理建立隧道。隧道通过 HTTP CONNECT 请求建立。在这种情况下,系统会调用 callback 来控制用于建立隧道的 HTTP CONNECT 请求。
  • 对于具有 http URI scheme 的目标,CronetEngine 会向代理发送 HTTP 请求,其中包含目标的整个 URI。在这种情况下,系统不会调用 callback
参数
@Proxy.Scheme scheme: Int

hostport 一起标识此代理的 Scheme

host: String

schemeport 一起标识此代理的非空主机。

port: @IntRange(from = 0, to = 65535) Int

schemehost 一起标识此代理的端口。其值必须在 [0, 65535] 范围内。

executor: Executor

将在其中调用 callback 的执行器。

callback: Proxy.HttpConnectCallback

允许与 CronetEngine 发送的 HTTP CONNECT 请求及其响应进行交互的回调,以通过代理建立隧道。