OkHttpClient દ્વારા Retrofit પ્રોક્સી કન્ફિગર કરો
Retrofitને કન્ફિગર કરેલો OkHttpClient આપો અને 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 ફરી પ્રયાસ હેન્ડલિંગ વાપરો.