Konfigurer videresendingsproxyen på OkHttp, og gi deretter den same 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 byggjer transportlaget og Retrofit-forekomsten. Før build legg du til konverter- og call-adapterfabrikkane applikasjonen treng i denne byggjaren, og lagar deretter tenestegrensesnittet frå denne forekomsten.

Hald baseUrl peikande på den faktiske API-tenesta. Set du proxy-URL-en der, endrar du HTTP-destinasjonen; det konfigurerer ikkje proxy-forhandling. Basis-URL-en held òg på Retrofit-kravet om ein avsluttande skråstrek. Ein tillaten test av eit offentleg API utan proxy-autentisering kan hente ein HTTP-adresse frå lista over HTTP-proxyar til det separate Proxy-objektet.

Ein eksplisitt OkHttp-proxy har forrang framfor ProxySelector-en sin. Bruk dette når klienten skal ha ein fast mellommann. Applikasjonar som treng destinasjonsavhengig ruting, bør heller utforme den politikken via den støtta veljaren.

Viss tenestegrensesnittet alt er laga frå ein annan Retrofit-forekomst, flyttar ikkje bygginga av denne nye forekomsten førespurnadene til det gamle grensesnittet. Hald den konfigurerte klienten, Retrofit-forekomsten og tenesteobjektet på same byggjeveg.

For ein proxy med autentisering eksponerer OkHttp proxyAuthenticator skilt frå destinasjonsautentikatoren. Konfigurer han på OkHttp-byggjaren når det trengs, og send deretter den ferdige klienten til Retrofit. For ein proxy med Basic-autentisering, bruk avgrensa handsaming av proxyAuthenticator-forsøk.

Relaterte artiklar