Proxy.HttpConnectCallback

public abstract class Proxy.HttpConnectCallback


Mengontrol tunnel yang dibuat melalui HTTP CONNECT. Semua metode akan dipanggil ke Executor yang ditentukan di createHttpProxy.

Metode dalam class ini hanya dipanggil jika kedua hal berikut benar:

- HttpEngine must establish a connection to the destination of an HTTP request
- The destination of the HTTP request has an https URI scheme
Lihat dokumentasi createHttpProxy untuk memahami cara CronetEngine memutuskan apakah akan membuat tunnel melalui proxy HTTP.

Ringkasan

Jenis bertingkat

Tindakan yang dapat dilakukan sebagai respons terhadap panggilan onResponseReceived.

public abstract class Proxy.HttpConnectCallback.Request implements AutoCloseable

Menampilkan permintaan HTTP CONNECT yang dikirim ke server proxy.

Konstanta

static final int

Menutup koneksi tunnel, sehingga tidak dapat digunakan untuk mengirim permintaan HTTP.

static final int

Melanjutkan pembuatan tunnel.

Konstruktor publik

Metode publik

abstract void

Dipanggil sebelum mengirim permintaan HTTP CONNECT ke proxy untuk membuat tunnel.

abstract int

Dipanggil setelah menerima respons terhadap permintaan HTTP CONNECT yang dikirim ke proxy untuk membuat tunnel.

Konstanta

RESPONSE_ACTION_CLOSE

public static final int RESPONSE_ACTION_CLOSE = 0

Menutup koneksi tunnel, sehingga tidak dapat digunakan untuk mengirim permintaan HTTP.

Saat koneksi tunnel ditutup, CronetEngine akan menafsirkannya sebagai kegagalan untuk menggunakan Proxy terkait. CronetEngine kemudian akan mencoba Proxy berikutnya dalam daftar yang diteruskan ke ProxyOptions (lihat dokumentasi class tersebut untuk mengetahui info selengkapnya).

RESPONSE_ACTION_PROCEED

public static final int RESPONSE_ACTION_PROCEED = 1

Melanjutkan pembuatan tunnel.

Hal ini tidak menjamin bahwa tunnel akan berhasil dibuat dan digunakan untuk mengirim permintaan HTTP: CronetEngine akan melakukan pemeriksaan tambahan sebelum itu. Bergantung pada hasilnya, CronetEngine mungkin masih memutuskan untuk menutup koneksi tunnel. Jika koneksi tunnel akhirnya ditutup oleh CronetEngine, hal ini akan dianggap sebagai kegagalan untuk menggunakan Proxy terkait. CronetEngine kemudian akan mencoba Proxy berikutnya dalam daftar yang diteruskan ke ProxyOptions (lihat dokumentasi class tersebut untuk mengetahui info selengkapnya)

Konstruktor publik

HttpConnectCallback

public HttpConnectCallback()

Metode publik

onBeforeRequest

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

Dipanggil sebelum mengirim permintaan HTTP CONNECT ke proxy untuk membuat tunnel.

Memungkinkan manipulasi, atau pembatalan, permintaan tersebut sebelum mengirimkannya ke proxy. Lihat Request untuk mempelajari cara permintaan dapat dimanipulasi/dibatalkan.

Parameter
@NonNull Proxy.HttpConnectCallback.Request request

Menampilkan permintaan HTTP CONNECT yang akan dikirim ke proxy.

onResponseReceived

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

Dipanggil setelah menerima respons terhadap permintaan HTTP CONNECT yang dikirim ke proxy untuk membuat tunnel. Memungkinkan pembacaan header dan kode status.

Saat mengirim permintaan HTTP ke tujuan dengan skema URI https, CronetEngine tidak akan pernah menggunakan proxy yang callback onResponseReceived-nya belum dipanggil.

Hal ini tidak akan dipanggil untuk permintaan HTTP yang akan melalui tunnel setelah dibuat.

Jika metode ini menampilkan java.lang.Throwable, nasib tunnel akan sama seperti jika RESPONSE_ACTION_CLOSE ditampilkan (java.lang.Throwable tidak akan ditangkap).

Parameter
@NonNull List<Pair<StringString>> responseHeaders

Daftar header yang terdapat dalam respons terhadap permintaan HTTP CONNECT.

int statusCode

Kode status HTTP yang terdapat dalam respons terhadap permintaan HTTP CONNECT.

Hasil
int

Nilai OnResponseReceivedAction yang menampilkan tindakan yang harus dilakukan dengan koneksi tunnel ini. Lihat dokumentasi OnResponseReceivedAction.