OkHttpте багыттоочу проксини конфигурациялаңыз, анан ошол эле клиентти Retrofitке бериңиз:

import java.net.InetSocketAddress;
import java.net.Proxy;
import okhttp3.OkHttpClient;
import retrofit2.Retrofit;

Proxy proxy = new Proxy(
    Proxy.Type.HTTP,
    new InetSocketAddress("proxy.example", 8080));

OkHttpClient http = new OkHttpClient.Builder()
    .proxy(proxy)
    .build();

Retrofit retrofit = new Retrofit.Builder()
    .baseUrl("https://api.example/")
    .client(http)
    .build();

Бул үзүндү транспорт катмарын жана Retrofit экземплярын түзөт. build чакыруусунан мурун тиркемеге керектүү конвертер жана чакыруу адаптер фабрикаларын бул куруучуга кошуңуз, анан ушул экземплярдан кызмат интерфейсин түзүңүз.

baseUrlди чыныгы API кызматына багыттап кармаңыз. Ал жерге проксинин URLин койсоңуз, HTTP максаты өзгөрөт; бул прокси менен сүйлөшүүнү конфигурациялабайт. Негизги URL ошондой эле Retrofitтин акыркы кыйгач сызык талабын сактайт. Прокси аутентификациясыз уруксат берилген коомдук API сынагы өзүнчө Proxy объекти үчүн HTTP прокси тизмесинен HTTP дарегин ала алат.

OkHttpтин ачык проксиси өзүнүн ProxySelectorине караганда артыкчылыкка ээ. Клиентте туруктуу ортомчу болушу керек болгондо муну колдонуңуз. Максатка көз каранды маршруттоо керек тиркемелер бул саясатты колдоого алынган селектор аркылуу долбоорлошу керек.

Эгер кызмат интерфейси мурун башка Retrofit экземплярынан түзүлгөн болсо, бул жаңы экземплярды куруу эски интерфейстин сурамдарын жылдырбайт. Конфигурацияланган клиентти, Retrofit экземплярын жана кызмат объектин бир куруу жолунда кармаңыз.

Аутентификациялуу прокси үчүн OkHttp proxyAuthenticatorду максат аутентификаторунан өзүнчө сунуштайт. Керек болгондо аны OkHttp куруучусунда конфигурациялаңыз, анан бүткөн клиентти Retrofitке өткөрүңүз. Basic аутентификациялуу прокси үчүн proxyAuthenticator кайталоолорун чектелген иштетүүнү колдонуңуз.

Тектеш макалалар