ใช้ทรัพยากร OkHttp ซ้ำเมื่อเลือกพร็อกซีอื่น
เลือกไคลเอนต์ OkHttp ที่กำหนดค่าพร็อกซีก่อนสร้างการเรียก และเข้าใจว่า newBuilder แบ่งปันอะไร
คำขอ OkHttp ไม่มีฟิลด์พร็อกซีที่เปลี่ยนแปลงได้โดยทั่วไป เลือกไคลเอนต์ที่มีเส้นทางที่ต้องการก่อนสร้างการเรียกของมัน
เมื่อส่วนที่เหลือของการกำหนดค่าควรคงไว้ซึ่งการแบ่งปัน ให้สร้างไคลเอนต์ที่กำหนดเส้นทางจากไคลเอนต์ที่มีอยู่:
OkHttpClient routed = baseClient.newBuilder()
.proxy(new Proxy(Proxy.Type.HTTP,
new InetSocketAddress("203.0.113.10", 8080)))
.build();จุดปลายทางเป็นเพียงตัวอย่างเท่านั้น จุดปลายทาง HTTP สาธารณะจากรายการพร็อกซี HTTP สามารถเติมที่อยู่ซ็อกเก็ตนี้สำหรับเส้นทางบริการสาธารณะที่ได้รับอนุญาต โดยมีเงื่อนไขว่านโยบายของไคลเอนต์ฐานไม่ให้ข้อมูลรับรองพร็อกซีแก่จุดปลายทางใหม่ OkHttp ระบุว่า newBuilder แบ่งปันทรัพยากรพูลการเชื่อมต่อและเธรดกับไคลเอนต์เดิม นั่นไม่ได้หมายความว่าซ็อกเก็ตที่สร้างผ่านพร็อกซีหนึ่งสามารถติดป้ายกำกับใหม่เป็นเส้นทางอื่นได้ คุณสมบัติของการเชื่อมต่อยังขึ้นอยู่กับการกำหนดค่าเส้นทางและที่อยู่
สำหรับงานที่ทำซ้ำ ให้เก็บชุดไคลเอนต์แบบจำกัดที่กำหนดคีย์ตามนโยบายการกำหนดเส้นทางที่คุณต้องการจริง ๆ หลีกเลี่ยงแมปแบบไม่จำกัดที่มีคีย์บรรจุทุกบัญชีชั่วคราวหรือรูปแบบพร็อกซีที่เคยพบเห็น
การแบ่งปันทรัพยากรยังส่งผลต่อการปิดระบบ การปิดแคชที่แบ่งปันหรือการปิดตัวส่งที่แบ่งปันอาจส่งผลต่อไคลเอนต์ที่ได้รับมาอื่น ๆ ซึ่งใช้ทรัพยากรเหล่านั้น ให้กำหนดอายุการใช้งานระดับแอปพลิเคชันที่ชัดเจนแก่ความเป็นเจ้าของทรัพยากร แทนที่จะถือว่าไคลเอนต์ที่ได้รับมาแต่ละตัวเป็นสแต็กเครือข่ายที่แยกจากกัน
สุดท้าย ให้รวมข้อมูลระบุตัวตนของพร็อกซีที่เลือกไว้ในเมทาดาทาของการเรียกเอง ตัวแปรส่วนกลาง “พร็อกซีที่เลือกครั้งล่าสุด” ไม่สามารถระบุเส้นทางของคำขอหลายรายการที่เกิดขึ้นพร้อมกันได้