Когда OkHttp пытается использовать прокси-сервер, и этот маршрут завершается ошибкой один раз, каждый запрос после этого запроса будет полностью обходить системный прокси-сервер Android. Поэтому трудно отлаживать с помощью Charles.
В настоящее время у меня есть код ниже, но он настроен только для сборок отладки. Он отлично работает, но это хак, и мы хотим выпустить его для всех пользователей.
Есть ли какая-то скрытая настройка OkHttpClient.dontBypassProxy, которую я не могу найти? Или приведенный ниже код выглядит как хорошее решение?
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));
}