Эски 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 аутентификацияны белгилүү жана көздөлгөн прокси үчүн гана себиңиз, жана кийинки операцияга анын байланышы керек болгонго чейин ар бир жоопту керектеп же бошотуңуз. Пайдалуу натыйжа — сурамды чындап жөнөткөн аткарууга байланган аккаунт жана кэштөлгөн схема.

Тектеш макалалар