Retrofit starpniekservera konfigurēšana caur OkHttpClient
Nododiet Retrofit konfigurētu OkHttpClient, vienlaikus atstājot API bāzes URL vērstu uz mērķa pakalpojumu.
Konfigurējiet pāradresācijas starpniekserveri OkHttp un pēc tam nododiet to pašu klientu 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();
Šis fragments izveido transporta slāni un Retrofit instanci. Pirms build pievienojiet šim veidotājam lietotnei nepieciešamās konvertoru un izsaukumu adapteru fabrikas, pēc tam izveidojiet pakalpojuma saskarni no šīs instances.
Turiet baseUrl vērstu uz īsto API pakalpojumu. Ja tur ievietosiet starpniekservera URL, mainīsiet HTTP galamērķi; tas nekonfigurē sarunas ar starpniekserveri. Bāzes URL arī saglabā Retrofit prasību par noslēguma slīpsvītru. Atļauts publiskas API tests bez starpniekservera autentifikācijas var ņemt HTTP adresi no HTTP starpniekserveru saraksta atsevišķajam Proxy objektam.
Express OkHttp starpniekserverim ir prioritāte pār tā ProxySelector. Izmantojiet to, ja klientam jābūt fiksētam starpniekam. Lietotnēm, kurām nepieciešama no galamērķa atkarīga maršrutēšana, šo politiku labāk projektēt ar atbalstīto selektoru.
Ja pakalpojuma saskarne jau izveidota no citas Retrofit instances, šīs jaunās instances izveide nepārvieto vecās saskarnes pieprasījumus. Turiet konfigurēto klientu, Retrofit instanci un pakalpojuma objektu vienā veidošanas ceļā.
Autentificētam starpniekserverim OkHttp atklāj proxyAuthenticator atsevišķi no galamērķa autentifikatora. Ja nepieciešams, konfigurējiet to OkHttp veidotājā un pēc tam nododiet gatavo klientu Retrofit. Starpniekserverim ar Basic autentifikāciju izmantojiet ierobežotu proxyAuthenticator atkārtojumu apstrādi.