Apache HttpClient 4.2: അഭ്യർത്ഥന സന്ദർഭത്തിൽ പ്രോക്സി AuthCache നിലനിർത്തുക
HttpClient 4.2 പ്രോക്സിയുടെ Basic-auth കാഷെ, തുടർന്നുള്ള അഭ്യർത്ഥനകൾ ഉപയോഗിക്കുന്ന അതേ എക്സിക്യൂഷൻ സന്ദർഭത്തിൽ നിലനിർത്തുക.
പഴയ HttpClient 4.2.2 ആപ്ലിക്കേഷനിൽ ക്രെഡൻഷ്യൽ ദാതാവും ഓതന്റിക്കേഷൻ കാഷെയും വ്യത്യസ്ത ജോലികൾ ചെയ്യുന്നു. ദാതാവ് അക്കൗണ്ട് നൽകുന്നു; കാഷെ, ബോധപൂർവം മുൻകൂട്ടി ക്രമീകരിച്ച ഓതന്റിക്കേഷൻ സ്കീമിന് അടുത്ത വെല്ലുവിളി വരുന്നതിന് മുമ്പ് പങ്കെടുക്കാൻ അനുവദിക്കുന്നു.
പ്രോക്സിക്ക് പ്രത്യേകമായ പഴയ BasicScheme കൺസ്ട്രക്ടറിന്, കൈമാറ്റം ഇങ്ങനെയാണ്:
AuthCache cache = new BasicAuthCache();
cache.put(proxy, new BasicScheme(ChallengeState.PROXY));
HttpContext context = new BasicHttpContext();
context.setAttribute(ClientContext.AUTH_CACHE, cache);
HttpResponse response = client.execute(request, context);ഈ ഭാഗം client-ന് ഇതിനകം യോജിക്കുന്ന പ്രോക്സി റൂട്ടും ക്രെഡൻഷ്യൽ ദാതാവും ഉണ്ടെന്ന് അനുമാനിക്കുന്നു. proxy അതിന്റെ HttpHost ആണ്, request യഥാർത്ഥ പ്രവർത്തനമാണ്. കാഷെ കീ ആ ഇടനിലക്കാരനെ വിവരിക്കണം, ലക്ഷ്യ വെബ്സൈറ്റിനെയല്ല.
നിറച്ച സന്ദർഭം execute-ന് നൽകുക. അത് നിർമ്മിച്ച ശേഷം മറ്റൊരു സന്ദർഭം സൃഷ്ടിക്കുന്ന ഓവർലോഡ് ഉപയോഗിക്കുന്നത് കാഷെ കൈമാറ്റത്തിന് പുറത്താക്കുന്നു. ആ ഓതന്റിക്കേഷൻ അവസ്ഥ പങ്കിടേണ്ട തുടർന്നുള്ള പ്രവർത്തനങ്ങൾക്ക്, ഓരോ തവണയും ശൂന്യമായ സന്ദർഭം പുനർനിർമ്മിക്കുന്നതിന് പകരം അനുയോജ്യമായ സന്ദർഭം നിലനിർത്തുക.
വ്യക്തമായ PROXY അവസ്ഥ ഈ പഴയ API-യുടേതാണ്. TARGET ലക്ഷ്യത്തിന്റെ ഓതന്റിക്കേഷനെക്കുറിച്ചാണ്. പുതിയ HttpClient തലമുറകൾ പാക്കേജുകളും ഓതന്റിക്കേഷൻ API-കളും മാറ്റി, അതിനാൽ ഇത് നിലവിലുള്ള 4.2 കോഡിനുള്ള അറ്റകുറ്റപ്പണി മാർഗ്ഗനിർദ്ദേശമായി ഉപയോഗിക്കുക, പുതിയ client-നുള്ള പാചകക്കുറിപ്പായി അല്ല.
സാധാരണ വെല്ലുവിളി-നയിക്കുന്ന കൈമാറ്റം ഇപ്പോഴും ശരിയായിരിക്കാം. അറിയപ്പെടുന്ന, ഉദ്ദേശിക്കുന്ന പ്രോക്സിക്ക് മാത്രമേ Basic ഓതന്റിക്കേഷൻ വിതയ്ക്കാവൂ, കൂടാതെ അടുത്ത പ്രവർത്തനത്തിന് അതിന്റെ കണക്ഷൻ ആവശ്യമാകുന്നതിന് മുമ്പ് ഓരോ പ്രതികരണവും ഉപഭോഗിക്കുകയോ വിട്ടയക്കുകയോ ചെയ്യുക. ഉപയോഗപ്രദമായ ഫലം, അഭ്യർത്ഥന യഥാർത്ഥത്തിൽ അയയ്ക്കുന്ന എക്സിക്യൂഷനോട് ബന്ധിപ്പിച്ച അക്കൗണ്ടും കാഷെ ചെയ്ത സ്കീമുമാണ്.