Gjenbruk OkHttp-ressurser når du velger en annen proxy
Velg en proxy-konfigurert OkHttp-klient før du oppretter et kall, og forstå hva newBuilder deler.
En OkHttp-forespørsel har ikke et generelt muterbart proxyfelt. Velg klienten med den tiltenkte ruten før du oppretter kallet.
Når resten av konfigurasjonen skal forbli delt, utled den rutede klienten fra en eksisterende klient:
OkHttpClient routed = baseClient.newBuilder()
.proxy(new Proxy(Proxy.Type.HTTP,
new InetSocketAddress("203.0.113.10", 8080)))
.build();Endepunktet er bare illustrativt. Offentlige HTTP-endepunkter fra HTTP-proxylisten kan fylle denne socketadressen for en tillatt offentlig tjenesterute, forutsatt at basisklientens policy ikke gir noen proxy-legitimasjon til det nye endepunktet. OkHttp dokumenterer at newBuilder deler tilkoblingspool- og trådressurser med den opprinnelige klienten. Det betyr ikke at en socket etablert gjennom én proxy kan merkes om som en annen rute. Tilkoblingens egnethet avhenger fortsatt av rute- og adressekonfigurasjonen.
For gjentatt arbeid, behold et begrenset sett med klienter nøklet etter rutingspolicyen du faktisk trenger. Unngå et ubegrenset kart der nøklene inneholder alle midlertidige kontoer eller proxyvariasjoner som noen gang er observert.
Ressursdeling påvirker også nedstenging. Lukking av en delt cache eller nedstenging av en delt dispatcher kan påvirke andre avledede klienter som bruker disse ressursene. Gi ressurseierskap en klar levetid på applikasjonsnivå i stedet for å behandle hver avledet klient som en isolert nettverksstakk.
Til slutt, ta med identiteten til den valgte proxyen i kallet sine egne metadata. En global variabel for «sist valgte proxy» kan ikke identifisere ruten for flere samtidige forespørsler.