Agordi Retrofit-prokurilon per OkHttpClient
Provizu agorditan OkHttpClient al Retrofit, lasante la bazan URL de la API montri al la cela servo.
Agordi la antaŭan prokurilon en OkHttp, poste provizu tiun saman klienton al 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();
La fragmento konstruas la transportan tavolon kaj la Retrofit-ekzempleron. Antaŭ build aldonu al ĉi tiu konstruilo la konvertilajn kaj alvokadaptilajn fabrikojn, kiujn la aplikaĵo bezonas, poste kreu ĝian servinterfacon el ĉi tiu ekzemplero.
Tenu baseUrl montranta al la reala API-servo. Se vi metas la prokurilan URL-on tie, vi ŝanĝas la HTTP-celon; tio ne agordas prokuran intertraktadon. La baza URL ankaŭ konservas la postulon de Retrofit pri fina oblikva streko. Permesita testo de publika API sen prokura aŭtentigo povas preni HTTP-adreson el la listo de HTTP-prokuriloj por la aparta Proxy-objekto.
Rekta OkHttp-prokurilo havas prioritaton super sia ProxySelector. Uzu tion, kiam la kliento devas havi fiksan peranton. Aplikaĵoj, kiuj bezonas cellok-dependan enkursigon, prefere projektus tiun politikon per la subtenata selektilo.
Se la servinterfaco jam estis kreita el alia Retrofit-ekzemplero, konstrui ĉi tiun novan ekzempleron ne movas la petojn de la malnova interfaco. Tenu la agorditan klienton, la Retrofit-ekzempleron kaj la servobjekton sur la sama konstruvojo.
Por aŭtentigita prokurilo, OkHttp elmontras proxyAuthenticator aparte de sia celloka aŭtentigilo. Agordu ĝin en la OkHttp-konstruilo laŭbezone, poste pasigu la pretan klienton al Retrofit. Por prokurilo kun Basic-aŭtentigo, uzu limigitan prilaboradon de proxyAuthenticator-ripetoj.