Повторно користете ги ресурсите на 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 ги споделува ресурсите на пулот за врски и нишките со оригиналниот клиент. Тоа не значи дека сокет воспоставен преку еден прокси може да се преименува како друга рута. Подобноста на врската сè уште зависи од конфигурацијата на рутата и адресата.
За повторлива работа, задржете ограничен сет на клиенти клучувани според политиката за рутирање што навистина ви е потребна. Избегнувајте неограничена мапа чии клучеви ги содржат сите некогаш видени привремени сметки или варијации на прокси.
Споделувањето ресурси влијае и на исклучувањето. Затворањето на споделен кеш или исклучувањето на споделен диспечер може да влијае на други изведени клиенти што ги користат тие ресурси. Дајте им на сопственоста над ресурсите јасен животен век на ниво на апликација, наместо да го третирате секој изведен клиент како изолиран мрежен стек.
На крајот, вклучете го идентитетот на избраното прокси во сопствените метаподатоци на повикот. Глобална променлива „последно избрано прокси“ не може да ја идентификува рутата на неколку истовремени барања.