プロキシが失敗したとき、OkHttp は直接接続するのか?
クライアントのバージョン、ルーティング候補、アプリケーションの再試行経路を使って、失敗したプロキシが直接アクセスにつながり得るかを判断します。
システム HTTP プロキシの歴史的なケースでは、OkHttp は 3.5.0 で挙動を変えました。そのプロキシが失敗した後に直接接続を試みることをやめました。静かなフォールバックに関する古い報告は、この変更より前の挙動を説明している可能性があります。
その経緯は、すべてのアプリケーションのルーティング方針を決めるものではありません。自分のアプリケーションからの報告を解釈するには、次の 3 つの確認を行います。
- 解決された OkHttp のバージョンを特定します。 コピーしているサンプルの古さではなく、フレームワークが実際に同梱しているバージョンを含む、アプリケーションの依存関係情報を使います。
- このクライアントが経路をどう選ぶかを特定します。 明示的なプロキシと独自の ProxySelector は別の設定です。セレクターがプロキシの後に直接候補を提供するなら、直接の代替を提示していることになります。
- 失敗ハンドラーを追跡します。 別のクライアントで再試行するアプリケーションコードを探します。その置き換えによる直接リクエストは、最初のクライアントの判断の外にあります。
必須プロキシの要件では、該当するクライアント方針は直接の代替を提示するのではなく停止しなければなりません。実際のクライアントと再試行経路をその要件に照らして確認してください。3.5.0 の変更だけでは、マシン全体のトラフィック規則にはなりません。