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 ಮರುಪ್ರಯತ್ನ ನಿರ್ವಹಣೆ ಬಳಸಿ.