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 വീണ്ടും-ശ്രമ മാനേജ്മെന്റ് ഉപയോഗിക്കുക.