I-configure ang proxy ng Retrofit sa pamamagitan ng OkHttpClient
Ibigay sa Retrofit ang isang naka-configure na OkHttpClient habang ang base URL ng API ay nananatiling nakaturo sa target na serbisyo.
I-configure ang forward proxy sa OkHttp, pagkatapos ay ibigay sa Retrofit ang parehong kliyente:
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();
Binubuo ng bahaging ito ang transport layer at ang instance ng Retrofit. Bago ang build, idagdag sa builder na ito ang mga pabrika ng converter at call adapter na kailangan ng aplikasyon, pagkatapos ay gawin ang service interface mula sa instance na ito.
Panatilihing nakaturo ang baseUrl sa aktwal na serbisyo ng API. Kung ilalagay doon ang URL ng proxy, mababago ang destinasyon ng HTTP; hindi nito ginagawa ang negosasyon sa proxy. Pinapanatili rin ng base URL ang pangangailangan ng Retrofit sa huling slash. Ang pinapayagang pagsubok sa pampublikong API na walang proxy authentication ay maaaring kumuha ng HTTP address mula sa listahan ng mga HTTP proxy para sa hiwalay na Proxy object.
Ang tahasang proxy ng OkHttp ay may priyoridad sa ProxySelector nito. Gamitin ito kapag kailangang may nakapirming tagapamagitan ang kliyente. Ang mga aplikasyong nangangailangan ng routing na nakadepende sa destinasyon ay dapat idisenyo ang patakarang iyon sa sinusuportahang selector.
Kung ang service interface ay nagawa na mula sa ibang instance ng Retrofit, hindi inililipat ng pagbuo ng bagong instance na ito ang mga request ng lumang interface. Panatilihin ang naka-configure na kliyente, instance ng Retrofit at service object sa parehong landas ng pagbuo.
Para sa proxy na may authentication, inilalantad ng OkHttp ang proxyAuthenticator nang hiwalay sa authenticator ng destinasyon. I-configure ito sa builder ng OkHttp kapag kailangan, pagkatapos ay ipasa ang kumpletong kliyente sa Retrofit. Para sa proxy na gumagamit ng Basic authentication, gamitin ang limitadong paghawak ng muling pagsubok ng proxyAuthenticator.