Apache HttpClient 4.2: ඉල්ලීම් සන්දර්භයේ proxy AuthCache තබා ගන්න
HttpClient 4.2 proxy හි Basic-auth කෑෂ් එක පසු ඉල්ලීම් භාවිතා කරන එම ක්රියාත්මක කිරීමේ සන්දර්භයේම තබා ගන්න.
පැරණි HttpClient 4.2.2 යෙදුමක, අක්රමාංක සපයන්නා සහ සත්යාපන කෑෂ් වෙනස් කාර්යයන් කරයි. සපයන්නා ගිණුම සපයයි; කෑෂ් එක හිතාමතා මුලින් සකසන ලද සත්යාපන යෝජනා ක්රමයට ඊළඟ අභියෝගය පැමිණීමට පෙර සහභාගී වීමට ඉඩ දෙයි.
පැරණි proxy-විශේෂිත 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 මාර්ගය සහ අක්රමාංක සපයන්නා ඇති බවයි. proxy යනු එහි HttpHost වන අතර request යනු සැබෑ ක්රියාවයි. කෑෂ් යතුර එම මැදිහත්කරු විස්තර කළ යුතුය, ගමනාන්ත වෙබ් අඩවිය නොවේ.
පිරවූ සන්දර්භය execute වෙත යවන්න. එය ගොඩනඟා පසුව වෙනත් සන්දර්භයක් සාදන overload එකක් භාවිතා කිරීමෙන් කෑෂ් එක හුවමාරුවෙන් පිටත තබයි. එම සත්යාපන තත්ත්වය බෙදා ගැනීමට අවශ්ය පසු ක්රියා සඳහා, සෑම විටම හිස් සන්දර්භයක් නැවත ගොඩනඟනවා වෙනුවට සුදුසු සන්දර්භය තබා ගන්න.
පැහැදිලි PROXY තත්ත්වය මෙම පැරණි API එකට අයත් වේ. TARGET ගමනාන්ත සත්යාපනයට අදාළ වේ. නව HttpClient පරම්පරා පැකේජ සහ සත්යාපන API වෙනස් කර ඇත, එබැවින් මෙය දැනට ඇති 4.2 කේතය සඳහා නඩත්තු මාර්ගෝපදේශයක් ලෙස භාවිතා කරන්න, නව client එකක් සඳහා වට්ටෝරුවක් ලෙස නොවේ.
සාමාන්ය අභියෝග-ධාවිත හුවමාරුවක් තවමත් නිවැරදි විය හැක. දන්නා සහ අදහස් කරන ලද proxy එකකට පමණක් Basic සත්යාපනය වපුරන්න, සහ ඊළඟ ක්රියාවට එහි සම්බන්ධතාවය අවශ්ය වීමට පෙර සෑම ප්රතිචාරයක්ම පරිභෝජනය කරන්න හෝ මුදා හරින්න. ප්රයෝජනවත් ප්රතිඵලය වන්නේ ඉල්ලීම සැබවින්ම යවන ක්රියාත්මක කිරීමට සම්බන්ධ වූ ගිණුමක් සහ කෑෂ් කළ යෝජනා ක්රමයකි.