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 पुनःप्रयास हैंडलिंग अपनाएँ।

संबंधित लेख