Proxy.HttpConnectCallback

public abstract class Proxy.HttpConnectCallback


控管透過 HTTP CONNECT 建立的通道。所有方法都會在 createHttpProxy 中指定的執行器上叫用。

只有在符合下列兩項條件時,才會叫用這個類別中的方法:

- HttpEngine must establish a connection to the destination of an HTTP request
- The destination of the HTTP request has an https URI scheme
請參閱 createHttpProxy 的文件,瞭解 CronetEngine 如何決定是否要透過 HTTP Proxy 建立通道。

摘要

巢狀型別

呼叫 onResponseReceived 後可執行的動作。

public abstract class Proxy.HttpConnectCallback.Request implements AutoCloseable

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

常數

static final int

關閉通道連線,防止通道用於傳送 HTTP 要求。

static final int

繼續建立通道。

公用建構函式

公用方法

abstract void

在將 HTTP CONNECT 要求傳送至 Proxy 之前呼叫,以建立通道。

abstract int

在收到傳送至 Proxy 的 HTTP CONNECT 要求的回應後呼叫,以建立通道。

常數

RESPONSE_ACTION_CLOSE

public static final int RESPONSE_ACTION_CLOSE = 0

關閉通道連線,防止通道用於傳送 HTTP 要求。

通道連線關閉時,CronetEngine 會將其解讀為無法使用相關聯的 Proxy。接著,CronetEngine 會嘗試 ProxyOptions 傳遞至 ProxyOptions 的清單中的下一個 Proxy (詳情請參閱該類別說明文件)。

RESPONSE_ACTION_PROCEED

public static final int RESPONSE_ACTION_PROCEED = 1

繼續建立通道。

這無法保證通道會成功建立,並用於傳送 HTTP 要求:CronetEngine 會先執行額外檢查。視結果而定,CronetEngine 可能仍會決定關閉通道連線。如果通道連線最終由 CronetEngine 關閉,系統會視為無法使用相關聯的 Proxy。接著,CronetEngine 會嘗試 ProxyOptions 傳遞至 ProxyOptions 的清單中的下一個 Proxy (詳情請參閱該類別說明文件)

公用建構函式

HttpConnectCallback

public HttpConnectCallback()

公用方法

onBeforeRequest

public abstract void onBeforeRequest(@NonNull Proxy.HttpConnectCallback.Request request)

在將 HTTP CONNECT 要求傳送至 Proxy 之前呼叫,以建立通道。

允許在將要求傳送至 Proxy 前,操控或取消要求。請參閱Request,瞭解如何操控/取消要求。

參數
@NonNull Proxy.HttpConnectCallback.Request request

代表將傳送至 Proxy 的 HTTP CONNECT 要求。

onResponseReceived

@Proxy.HttpConnectCallback.OnResponseReceivedAction
public abstract int onResponseReceived(
    @NonNull List<Pair<StringString>> responseHeaders,
    int statusCode
)

在收到傳送至 Proxy 的 HTTP CONNECT 要求的回應後呼叫,以建立通道。允許讀取標頭和狀態碼。

將 HTTP 要求傳送至具有 https URI 結構的目的地時,CronetEngine 絕不會使用尚未叫用 onResponseReceived 回呼的 Proxy。

建立通道後,系統不會針對透過通道傳送的 HTTP 要求呼叫這個函式。

如果這個方法擲回任何 java.lang.Throwable,通道的命運會如同傳回 RESPONSE_ACTION_CLOSE (不會擷取 java.lang.Throwable)。

參數
@NonNull List<Pair<StringString>> responseHeaders

HTTP CONNECT 要求的回應中包含的標頭清單。

int statusCode

HTTP CONNECT 要求的回應中包含的 HTTP 狀態碼。

傳回
int

OnResponseReceivedAction 值,代表應如何處理這個通道連線。請參閱OnResponseReceivedAction說明文件。