Reutilitza els recursos d'OkHttp mentre selecciones un altre proxy
Selecciona un client OkHttp configurat amb proxy abans de crear una crida i entén què comparteix newBuilder.
Una sol·licitud OkHttp no té un camp de proxy mutable general. Tria el client amb la ruta prevista abans de crear-ne la crida.
Quan la resta de la configuració ha de romandre compartida, deriva el client encaminat a partir d'un client existent:
OkHttpClient routed = baseClient.newBuilder()
.proxy(new Proxy(Proxy.Type.HTTP,
new InetSocketAddress("203.0.113.10", 8080)))
.build();El punt final és il·lustratiu. Els punts finals HTTP públics de la llista de proxys HTTP poden omplir aquesta adreça de sòcol per a una ruta de servei públic permesa, sempre que la política del client base no proporcioni credencials de proxy al nou punt final. OkHttp documenta que newBuilder comparteix recursos del pool de connexions i de fils amb el client original. Això no vol dir que un sòcol establert a través d'un proxy es pugui reetiquetar com una altra ruta. L'elegibilitat de la connexió encara depèn de la configuració de la ruta i de l'adreça.
Per a treball repetitiu, mantén un conjunt limitat de clients indexats per la política d'encaminament que realment necessites. Evita un mapa il·limitat les claus del qual continguin tots els comptes temporals o variacions de proxy mai observats.
La compartició de recursos també afecta l'aturada. Tancar una memòria cau compartida o aturar un distribuïdor compartit pot afectar altres clients derivats que utilitzen aquests recursos. Dona a la propietat dels recursos una vida útil clara a nivell d'aplicació en lloc de tractar cada client derivat com una pila de xarxa aïllada.
Finalment, inclou la identitat del proxy seleccionat a les metadades pròpies de la crida. Una variable global «últim proxy triat» no pot identificar la ruta de diverses sol·licituds concurrents.