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-лерін өзгертті, сондықтан мұны жаңа client-ке арналған рецепт емес, бар 4.2 кодын сүйемелдеу жөніндегі нұсқаулық ретінде пайдаланыңыз.
Қалыпты шақыруға негізделген алмасу әлі де дұрыс болуы мүмкін. Basic аутентификацияны тек белгілі және көзделген прокси үшін ғана егіңіз, және келесі операцияға оның қосылымы қажет болмай тұрып әрбір жауапты тұтыныңыз немесе босатыңыз. Пайдалы нәтиже — сұранысты шынымен жіберетін орындауға байланған тіркелгі мен кэштелген схема.