Ikkonfigura proxy Retrofit permezz ta’ OkHttpClient
Agħti OkHttpClient ikkonfigurat lil Retrofit filwaqt li żżomm l-URL bażi tal-API indirizzata lejn is-servizz tad-destinazzjoni.
Ikkonfigura l-proxy tal-ibbordjar fuq OkHttp, imbagħad agħti dan l-istess klijent lil 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();
Dan il-framment jibni s-saff tat-trasport u l-istanza Retrofit. Qabel build żid ma’ dan il-builder il-fabbriki tal-konvertituri u tal-adattaturi tas-sejħiet li teħtieġ l-applikazzjoni, imbagħad oħloq l-interface tas-servizz minn din l-istanza.
Żomm baseUrl indirizzat lejn is-servizz API reali. Jekk tqiegħed hemm l-URL tal-proxy, tbiddel id-destinazzjoni HTTP; dan ma jikkonfigurax in-negozjati mal-proxy. L-URL bażi jżomm ukoll il-ħtieġa ta’ Retrofit għal slash finali. Test permess ta’ API pubblika mingħajr awtentikazzjoni tal-proxy jista’ jieħu indirizz HTTP mil-lista ta’ proxies HTTP għall-objett Proxy separat.
Proxy OkHttp espliċitu għandu preċedenza fuq il-ProxySelector tiegħu. Użah meta l-klijent għandu jkollu intermedjarju fiss. L-applikazzjonijiet li jeħtieġu routing dipendenti mid-destinazzjoni għandhom jiddisinjaw dik il-politika permezz tas-selettur appoġġjat.
Jekk l-interface tas-servizz inħoloq diġà minn istanza Retrofit oħra, il-bini ta’ din l-istanza l-ġdida ma jċaqlaqx it-talbiet tal-interface l-qadima. Żomm il-klijent ikkonfigurat, l-istanza Retrofit u l-objett tas-servizz fl-istess triq tal-bini.
Għal proxy b’awtentikazzjoni, OkHttp jesponi l-proxyAuthenticator separat mill-awtentikatur tad-destinazzjoni tiegħu. Ikkonfigurah fuq il-builder ta’ OkHttp meta jkun meħtieġ, imbagħad għaddi l-klijent lest lil Retrofit. Għal proxy b’awtentikazzjoni Basic, uża ġestjoni limitata tal-ġbid mill-ġdid tal-proxyAuthenticator.