Konfiguro një proxy Retrofit përmes OkHttpClient
Jepni Retrofit një OkHttpClient të konfiguruar, duke e mbajtur URL-në bazë të API-së të drejtuar nga shërbimi i destinacionit.
Konfiguroni proxy-n e përcjelljes në OkHttp, më pas jepni të njëjtin klient 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();
Ky fragment ndërton shtresën e transportit dhe instancën Retrofit. Përpara build shtoni në këtë ndërtues fabrikat e konvertuesve dhe të përshtatësve të thirrjeve që kërkon aplikacioni, më pas krijoni ndërfaqen e shërbimit nga kjo instancë.
Mbajeni baseUrl të drejtuar nga shërbimi real i API-së. Nëse vendosni atje URL-në e proxy-t, ndryshoni destinacionin HTTP; kjo nuk konfiguron negociimin me proxy-n. URL-ja bazë ruan gjithashtu kërkesën e Retrofit për prerje të fundit. Një test i lejuar mbi një API publike pa autentikim proxy mund të marrë një adresë HTTP nga lista e proxy-ve HTTP për objektin Proxy të veçantë.
Një proxy eksplicit OkHttp ka përparësi mbi ProxySelector-in e tij. Përdoreni kur klienti duhet të ketë një ndërmjetës fiks. Aplikacionet që kanë nevojë për rrugëtim të varur nga destinacioni duhet ta projektojnë atë politikë përmes përzgjedhësit të mbështetur.
Nëse ndërfaqja e shërbimit është krijuar tashmë nga një instancë tjetër Retrofit, ndërtimi i kësaj instance të re nuk i zhvendos kërkesat e ndërfaqes së vjetër. Mbajini klientin e konfiguruar, instancën Retrofit dhe objektin e shërbimit në të njëjtën rrugë ndërtimi.
Për një proxy me autentikim, OkHttp ekspozon proxyAuthenticator veçmas nga vërtetuesi i destinacionit. Konfiguroni atë në ndërtuesin OkHttp kur nevojitet, më pas kaloni klientin e përfunduar në Retrofit. Për një proxy me autentikim Basic, përdorni trajtim të kufizuar të ripërpjekjeve të proxyAuthenticator.