OkHttpClient ద్వారా Retrofit ప్రాక్సీని కాన్ఫిగర్ చేయండి
కాన్ఫిగర్ చేసిన OkHttpClientని Retrofitకి ఇవ్వండి, API యొక్క బేస్ URL లక్ష్య సేవ వైపే చూపిస్తూ ఉంచండి.
OkHttpలో ఫార్వర్డ్ ప్రాక్సీని కాన్ఫిగర్ చేసి, ఆ తర్వాత అదే క్లయింట్ను 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();
ఈ భాగం రవాణా పొరను మరియు Retrofit ఇన్స్టాన్స్ను నిర్మిస్తుంది. build ముందు యాప్కు అవసరమైన కన్వర్టర్ మరియు కాల్-అడాప్టర్ ఫ్యాక్టరీలను ఈ బిల్డర్కు జోడించి, ఆ తర్వాత ఈ ఇన్స్టాన్స్ నుండి దాని సేవా ఇంటర్ఫేస్ను సృష్టించండి.
baseUrl నిజమైన API సేవ వైపే చూపిస్తూ ఉంచండి. అక్కడ ప్రాక్సీ URL పెడితే HTTP గమ్యం మారుతుంది; అది ప్రాక్సీ చర్చను కాన్ఫిగర్ చేయదు. బేస్ URL Retrofit యొక్క చివరి స్లాష్ షరతును కూడా నిలుపుతుంది. ప్రాక్సీ ప్రామాణీకరణ లేకుండా అనుమతించిన పబ్లిక్ API పరీక్ష ప్రత్యేక Proxy ఆబ్జెక్ట్ కోసం HTTP ప్రాక్సీల జాబితా నుండి HTTP చిరునామాను తీసుకోవచ్చు.
OkHttp యొక్క స్పష్ట ప్రాక్సీ దాని ProxySelector కంటే ప్రాధాన్యత పొందుతుంది. క్లయింట్కు స్థిర మధ్యవర్తి ఉండాల్సినప్పుడు దీన్ని ఉపయోగించండి. గమ్యం ఆధారిత రూటింగ్ అవసరమయ్యే యాప్లు ఆ విధానాన్ని మద్దతు ఉన్న సెలెక్టర్ ద్వారా రూపకల్పన చేయాలి.
సేవా ఇంటర్ఫేస్ ఇప్పటికే మరో Retrofit ఇన్స్టాన్స్ నుండి సృష్టించబడి ఉంటే, ఈ కొత్త ఇన్స్టాన్స్ను నిర్మించడం పాత ఇంటర్ఫేస్ అభ్యర్థనలను తరలించదు. కాన్ఫిగర్ చేసిన క్లయింట్, Retrofit ఇన్స్టాన్స్ మరియు సేవా ఆబ్జెక్ట్ను ఒకే నిర్మాణ మార్గంలో ఉంచండి.
ప్రామాణీకరణ ఉన్న ప్రాక్సీ కోసం OkHttp proxyAuthenticatorను దాని గమ్య ప్రామాణీకరణకర్త నుండి వేరుగా అందిస్తుంది. అవసరమైనప్పుడు దాన్ని OkHttp బిల్డర్పై కాన్ఫిగర్ చేసి, ఆ తర్వాత పూర్తయిన క్లయింట్ను Retrofitకి ఇవ్వండి. Basic ప్రామాణీకరణ ఉన్న ప్రాక్సీ కోసం పరిమిత proxyAuthenticator పునఃప్రయత్న నిర్వహణ ఉపయోగించండి.