OkHttp-də forvard proxy-ni konfiqurasiya edin, sonra həmin klientin özünü Retrofit-ə verin:

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();

Bu fraqment nəqliyyat qatını və Retrofit nüsxəsini qurur. build çağırışından əvvəl tətbiqin tələb etdiyi çevirici və çağırış adapteri fabriklərini bu qurucuya əlavə edin, sonra xidmət interfeysini bu nüsxədən yaradın.

baseUrl-i həqiqi API xidmətinə yönəltməkdə saxlayın. Ora proxy URL-i yazsanız, HTTP təyinatı dəyişər; bu, proxy danışıqlarını konfiqurasiya etmir. Baza URL həm də Retrofit-in sonuncu slash tələbini qoruyur. Proxy autentifikasiyası olmadan icazə verilən ictimai API sınağı ayrı Proxy obyekti üçün HTTP proksi siyahısından bir HTTP ünvanı götürə bilər.

OkHttp-də açıq proxy onun ProxySelector-undan üstünlük təşkil edir. Klientin sabit vasitəçisi olmalıdırsa, bundan istifadə edin. Təyinatdan asılı marşrutlaşdırma lazım olan tətbiqlər bu siyasəti dəstəklənən selektor vasitəsilə layihələndirməlidir.

Xidmət interfeysi əvvəlcədən başqa Retrofit nüsxəsindən yaradılıbsa, bu yeni nüsxənin qurulması köhnə interfeysin sorğularını köçürmür. Konfiqurasiya edilmiş klienti, Retrofit nüsxəsini və xidmət obyektini eyni qurma yolu üzərində saxlayın.

Autentifikasiyalı proxy üçün OkHttp proxyAuthenticator-u təyinat autentifikatorundan ayrı təqdim edir. Lazım olduqda onu OkHttp qurucusunda konfiqurasiya edin, sonra tamamlanmış klienti Retrofit-ə ötürün. Basic autentifikasiya istifadə edən proxy üçün məhdud proxyAuthenticator yenidən cəhd emalı tətbiq edin.

Əlaqəli məqalələr