Konfigurer forward-proxyen på OkHttp, og gi deretter den samme klienten til 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();

Utdraget bygger transportlaget og Retrofit-forekomsten. Før build legger du til konverter- og call-adapterfabrikkene applikasjonen trenger i denne builderen, og oppretter deretter tjenestegrensesnittet fra denne forekomsten.

Hold baseUrl pekende på den faktiske API-tjenesten. Setter du proxy-URL-en der, endrer du HTTP-destinasjonen; det konfigurerer ikke proxy-forhandling. Basis-URL-en beholder også Retrofits krav om en avsluttende skråstrek. En tillatt test av et offentlig API uten proxy-autentisering kan hente en HTTP-adresse fra listen over HTTP-proxyer til det separate Proxy-objektet.

En eksplisitt OkHttp-proxy har forrang foran sin ProxySelector. Bruk den når klienten skal ha en fast mellommann. Applikasjoner som trenger destinasjonsavhengig ruting, bør heller utforme den policyen via den støttede velgeren.

Hvis tjenestegrensesnittet allerede er opprettet fra en annen Retrofit-forekomst, flytter ikke byggingen av denne nye forekomsten forespørslene til det gamle grensesnittet. Hold den konfigurerte klienten, Retrofit-forekomsten og tjenesteobjektet på samme byggevei.

For en proxy med autentisering eksponerer OkHttp proxyAuthenticator atskilt fra destinasjonsautentikatoren. Konfigurer den på OkHttp-builderen når det trengs, og send deretter den ferdige klienten til Retrofit. For en proxy med Basic-autentisering, bruk begrenset håndtering av proxyAuthenticator-forsøk.

Relaterte artikler