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 代理建立隧道。

摘要

嵌套类型

在调用 onResponseReceived 时可执行的操作。

public abstract class Proxy.HttpConnectCallback.Request implements AutoCloseable

表示正在向代理服务器发送的 HTTP CONNECT 请求。

常量

static final int

关闭隧道连接,防止其用于发送 HTTP 请求。

static final int

继续建立隧道。

公共构造函数

公共方法

abstract void

在向代理发送 HTTP CONNECT 请求以建立隧道之前调用。

abstract int

在收到对发送到代理以建立隧道的 HTTP CONNECT 请求的响应后调用。

常量

RESPONSE_ACTION_CLOSE

public static final int RESPONSE_ACTION_CLOSE = 0

关闭隧道连接,防止其用于发送 HTTP 请求。

当隧道连接关闭时,CronetEngine 会将其解释为无法使用关联的 Proxy。然后,CronetEngine 将尝试传递给 ProxyOptions 的列表中的下一个 Proxy(如需了解详情,请参阅该类的文档)。

RESPONSE_ACTION_PROCEED

public static final int RESPONSE_ACTION_PROCEED = 1

继续建立隧道。

这并不能保证隧道会成功建立并用于发送 HTTP 请求:CronetEngine 会在此之前执行额外的检查。根据结果,CronetEngine 仍可能会决定关闭隧道连接。如果隧道连接最终被 CronetEngine 关闭,则会被视为无法使用关联的 Proxy。然后,CronetEngine 将尝试传递给 ProxyOptions 的列表中的下一个 Proxy(如需了解详情,请参阅该类文档)

公共构造函数

HttpConnectCallback

public HttpConnectCallback()

公共方法

onBeforeRequest

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

在向代理发送 HTTP CONNECT 请求以建立隧道之前调用。

允许在将相应请求发送到代理之前对其进行操作或取消。请参阅 Request,了解如何操纵/取消请求。

参数
@NonNull Proxy.HttpConnectCallback.Request request

表示将发送到代理的 HTTP CONNECT 请求。

onResponseReceived

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

在收到对发送到代理以建立隧道的 HTTP CONNECT 请求的响应后调用。允许读取标头和状态代码。

当向具有 https URI 方案的目标发送 HTTP 请求时,CronetEngine 永远不会使用尚未调用 onResponseReceived 回调的代理。

对于在隧道建立后将通过隧道的 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 文档。