เมื่อ OkHttp ลองใช้พร็อกซี และเส้นทางนั้นล้มเหลวหนึ่งครั้ง ทุกคำขอหลังจากคำขอนั้นจะข้ามพร็อกซีระบบ Android โดยสมบูรณ์ ดังนั้นจึงเป็นเรื่องยากที่จะดีบักโดยใช้ Charles
ขณะนี้ฉันมีโค้ดด้านล่าง แต่มีการตั้งค่าไว้สำหรับรุ่น Debug เท่านั้น มันใช้งานได้ดี แต่เป็นการแฮ็ก และเรากำลังเตรียมที่จะเผยแพร่สิ่งนี้ให้กับผู้ใช้ทุกคน
มีการตั้งค่า 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));
}