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 மறுமுயற்சி கையாளுதல் பயன்படுத்துங்கள்.