Proxy.HttpConnectCallback

public abstract class Proxy.HttpConnectCallback


HTTP CONNECT 経由で確立されたトンネルを制御します。すべてのメソッドは、createHttpProxy で指定された Executor で呼び出されます。

このクラス内のメソッドは、次の両方の条件を満たす場合にのみ呼び出されます。

- HttpEngine must establish a connection to the destination of an HTTP request
- The destination of the HTTP request has an https URI scheme
CronetEngine が HTTP プロキシ経由でトンネルを確立するかどうかを判断する方法については、createHttpProxy のドキュメントを参照してください。

概要

ネストされた型

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 のドキュメントをご覧ください。