Saat OkHttp mencoba proxy, dan rute tersebut gagal satu kali, setiap permintaan setelah permintaan tersebut akan sepenuhnya melewati proxy sistem Android. Jadi sulit untuk melakukan debug menggunakan Charles.
Saat ini saya memiliki kode di bawah ini, tetapi ini diatur hanya untuk build Debug. Ini berfungsi dengan baik, tetapi ini adalah peretasan, dan kami berencana merilisnya untuk semua pengguna.
Apakah ada pengaturan OkHttpClient.dontBypassProxy tersembunyi yang tidak dapat saya temukan? Atau, apakah kode di bawah ini terlihat seperti solusi yang bagus?
OkHttpClient.Builder baseClientBuilder = new OkHttpClient.Builder().retryOnConnectionFailure(false).connectionPool(new ConnectionPool(5, 20, TimeUnit.SECONDS));
//Ask OkHttp what proxies we have setup
List<Proxy> proxies = ProxySelector.getDefault().select(URI.create("http://www.somesite.com"));
if (proxies.size() > 0 && proxies.get(0) != Proxy.NO_PROXY) {
//Force OkHttp to always use this proxy
baseClientBuilder.proxy(proxies.get(0));
}