私はそうのように、フォワードプロキシを経由して私のバックエンドサーバーへのHTTP/1.xの要求を行うために私のAndroidアプリにOkHttp3使用しています:OkHttp3はHTTPフォワードプロキシ経由でHTTP2をサポートしていますか?
List<Protocol> protos = new ArrayList<>();
protos.add(Protocol.HTTP_2);
protos.add(Protocol.HTTP_1_1);
InetSocketAddress proxyAddr = new InetSocketAddress("proxy.example.com", 80);
Proxy proxy = new Proxy(Proxy.Type.HTTP, proxyAddr);
OkHttpClient cli = new OkHttpClient.Builder()
.proxy(proxy)
.protocols(protos)
.build();
String url = "http://www.example.com/";
Request req = new Request.Builder().url(url).build();
Response res = cli.newCall(req).execute();
私はHTTP2にアップグレードしたいと思います。しかし、OkHttp3はHTTPプロキシを経由していない場合にのみHTTP2要求を行うことができます。したがって、上記のコードは動作しません。
つまり、OkHttp3は、以下の最初の3つのケースをサポートしますが、4番目のケースはサポートしません。以下のHTTP/2は、h2c(HTTP/2クリアテキスト以上)ではなくh2(TLS上のHTTP/2)を意味します。
A)クライアント< - HTTP/1.1 - >上流のサーバ
B)クライアント< - HTTP/1.1 - >フォワードプロキシ< - HTTP/X - >上流サーバ
C)クライアント< - HTTP/2 - >上流のサーバ
D)クライアント< - HTTP/2 - >フォワードプロキシ< - HTTP/X - >上流のサーバ
否定するか、私の理解を否定するか?ありがとう。
私はSOの初心者であり、私はコメントできれいに表現することができないフォローアップの質問を持っています - 私は方法を知らない。次の答えを見てください。 – hoolam