Proxy

class Proxy


代表可供 CronetEngine 使用的 Proxy。

透過 Proxy 傳送 HTTP 要求的方式取決於多種因素。例如:使用的 Proxy 類型、使用的 HTTP 版本,以及要求是否傳送至具有 HTTP 或 HTTPS URI 配置的目的地。此外,是否透過 Proxy 建立通道也取決於這些因素。

摘要

巢狀型別

控管透過 HTTP CONNECT 建立的通道。

呼叫 onResponseReceived 後可執行的動作。

代表傳送至 Proxy 伺服器的 HTTP CONNECT 要求。

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

定義 Proxy 時支援的架構。

常數

const Int

建立與 Proxy 本身的純文字連線。

const Int

建立與 Proxy 本身的安全連線。

公開函式

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

建構 HTTP Proxy。

常數

SCHEME_HTTP

const val SCHEME_HTTP = 0: Int

建立與 Proxy 本身的純文字連線。

SCHEME_HTTPS

const val SCHEME_HTTPS = 1: Int

建立與 Proxy 本身的安全連線。

公開函式

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 Proxy。

透過 HTTP Proxy 傳送 HTTP 要求時,是否呼叫 callback 取決於目的地的 URI 配置:

  • 對於具有 https URI 配置的目的地,CronetEngine 會透過 Proxy 建立通道。通道是透過 HTTP CONNECT 要求建立的。在這種情況下,系統會呼叫 callback,以控管用於建立通道的 HTTP CONNECT 要求。
  • 如果目的地採用 http URI 配置,CronetEngine 會將包含目的地完整 URI 的 HTTP 要求傳送至 Proxy。在這種情況下,系統不會呼叫 callback
參數
@Proxy.Scheme scheme: Int

Scheme,與 hostport 一起識別這個 Proxy。

host: String

非空白主機,與 schemeport 一起識別這個 Proxy。

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

schemehost 一併用於識別這個 Proxy 的連接埠。值必須介於 [0, 65535] 之間。

executor: Executor

要叫用 callback 的執行者。

callback: Proxy.HttpConnectCallback

回呼,可與 CronetEngine 傳送的 HTTP CONNECT 要求及其回應互動,透過 Proxy 建立通道。