വ്യത്യസ്ത പ്രോക്സി തിരഞ്ഞെടുക്കുമ്പോൾ OkHttp വിഭവങ്ങൾ വീണ്ടും ഉപയോഗിക്കുക
കോൾ സൃഷ്ടിക്കുന്നതിന് മുമ്പ് പ്രോക്സി ക്രമീകരിച്ച OkHttp ക്ലയന്റ് തിരഞ്ഞെടുക്കുക, newBuilder എന്താണ് പങ്കിടുന്നതെന്ന് മനസ്സിലാക്കുക.
OkHttp അഭ്യർത്ഥനയ്ക്ക് പൊതുവായ മാറ്റാവുന്ന പ്രോക്സി ഫീൽഡ് ഇല്ല. അതിന്റെ കോൾ സൃഷ്ടിക്കുന്നതിന് മുമ്പ് ഉദ്ദേശിച്ച റൂട്ടുള്ള ക്ലയന്റ് തിരഞ്ഞെടുക്കുക.
ബാക്കിയുള്ള കോൺഫിഗറേഷൻ പങ്കിട്ടതായി തുടരേണ്ടിവരുമ്പോൾ, നിലവിലുള്ള ക്ലയന്റിൽ നിന്ന് റൂട്ട് ചെയ്ത ക്ലയന്റ് ഉരുത്തിരിച്ചെടുക്കുക:
OkHttpClient routed = baseClient.newBuilder()
.proxy(new Proxy(Proxy.Type.HTTP,
new InetSocketAddress("203.0.113.10", 8080)))
.build();അന്തിമ പോയിന്റ് ഉദാഹരണത്തിന് മാത്രം. HTTP പ്രോക്സി പട്ടികയിലെ പൊതു HTTP അന്തിമ പോയിന്റുകൾ അനുവദനീയമായ പൊതു-സേവന റൂട്ടിനായി ഈ സോക്കറ്റ് വിലാസം പൂരിപ്പിക്കാം, അടിസ്ഥാന ക്ലയന്റിന്റെ നയം പുതിയ അന്തിമ പോയിന്റിന് പ്രോക്സി ക്രെഡൻഷ്യലുകൾ നൽകുന്നില്ലെങ്കിൽ. OkHttp രേഖപ്പെടുത്തുന്നതനുസരിച്ച് newBuilder കണക്ഷൻ-പൂൾ, ത്രെഡ് വിഭവങ്ങൾ യഥാർത്ഥ ക്ലയന്റുമായി പങ്കിടുന്നു. ഒരു പ്രോക്സിയിലൂടെ സ്ഥാപിച്ച സോക്കറ്റിനെ മറ്റൊരു റൂട്ടായി പുനർലേബൽ ചെയ്യാമെന്ന് അതിനർത്ഥമില്ല. കണക്ഷന്റെ യോഗ്യത ഇപ്പോഴും റൂട്ട്, വിലാസ കോൺഫിഗറേഷനെ ആശ്രയിച്ചിരിക്കുന്നു.
ആവർത്തിച്ചുള്ള ജോലിക്ക്, നിങ്ങൾക്ക് യഥാർത്ഥത്തിൽ ആവശ്യമുള്ള റൂട്ടിംഗ് നയം കീയാക്കിയ പരിമിതമായ ക്ലയന്റ് സെറ്റ് നിലനിർത്തുക. ഇതുവരെ കണ്ട എല്ലാ താൽക്കാലിക അക്കൗണ്ടുകളോ പ്രോക്സി വ്യതിയാനങ്ങളോ കീകളിൽ ഉൾക്കൊള്ളുന്ന പരിധിയില്ലാത്ത മാപ്പ് ഒഴിവാക്കുക.
വിഭവ പങ്കിടൽ ഷട്ട്ഡൗണിനെയും ബാധിക്കുന്നു. പങ്കിട്ട കാഷെ അടയ്ക്കുന്നതോ പങ്കിട്ട ഡിസ്പാച്ചർ ഓഫ് ചെയ്യുന്നതോ ആ വിഭവങ്ങൾ ഉപയോഗിക്കുന്ന മറ്റ് ഉരുത്തിരിഞ്ഞ ക്ലയന്റുകളെ ബാധിച്ചേക്കാം. ഓരോ ഉരുത്തിരിഞ്ഞ ക്ലയന്റിനെയും വേർതിരിച്ച നെറ്റ്വർക്ക് സ്റ്റാക്കായി കാണുന്നതിന് പകരം വിഭവ ഉടമസ്ഥതയ്ക്ക് വ്യക്തമായ ആപ്ലിക്കേഷൻ-തല ആയുസ്സ് നൽകുക.
അവസാനമായി, തിരഞ്ഞെടുത്ത പ്രോക്സിയുടെ ഐഡന്റിറ്റി കോളിന്റെ സ്വന്തം മെറ്റാഡാറ്റയിൽ ഉൾപ്പെടുത്തുക. ആഗോള “അവസാനം തിരഞ്ഞെടുത്ത പ്രോക്സി” വേരിയബിളിന് ഒരേസമയം നടക്കുന്ന നിരവധി അഭ്യർത്ഥനകളുടെ റൂട്ട് തിരിച്ചറിയാൻ കഴിയില്ല.