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 पुनःप्रयास ह्यान्डलिङ प्रयोग गर्नुहोस्।

सम्बन्धित लेखहरू