Apache HttpClient 4.2: haltu proxy-AuthCache á beiðnisamhenginu
Haltu Basic-auth skyndiminni fyrir HttpClient 4.2 proxy á sama keyrslusamhengi og síðari beiðnir nota.
Í eldra HttpClient 4.2.2 forriti sinna auðkennaveitandi og auðkenningarskyndiminni ólíkum verkum. Veitandinn leggur til reikninginn; skyndiminnið leyfir viljandi fyrirfram stilltu auðkenningarkerfi að taka þátt áður en ný áskorun berst.
Fyrir gamla proxy-sértæka BasicScheme smiðinn lítur afhendingin svona út:
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);Þetta brot gerir ráð fyrir að client hafi þegar samsvarandi proxy-leið og auðkennaveitanda. proxy er HttpHost hans og request er raunverulega aðgerðin. Skyndiminnislykillinn verður að lýsa þeim millilið, ekki áfangavefnum.
Sendu fyllta samhengið til execute. Að byggja það og nota svo ofhleðslu sem býr til annað samhengi skilur skyndiminnið utan skiptanna. Fyrir síðari aðgerðir sem eiga að deila þessu auðkenningarstöðu skaltu halda viðeigandi samhengi í stað þess að endurbyggja tómt í hvert sinn.
Skýra PROXY staðan tilheyrir þessu eldra API. TARGET snýst um auðkenningu áfangans. Nýrri kynslóðir HttpClient hafa breytt pökkum og auðkenningar-API, svo notaðu þetta sem viðhaldsleiðbeiningu fyrir núverandi 4.2 kóða, ekki sem uppskrift fyrir nýjan client.
Venjuleg áskorunardrifin skipti geta samt verið rétt. Sáðu Basic auðkenningu aðeins fyrir þekktan og ætlaðan proxy, og neyttu eða losaðu hvert svar áður en næsta aðgerð þarf tengingu þess. Nothæfa niðurstaðan er reikningur og skyndiminnið kerfi sem er tengt við keyrsluna sem sendir beiðnina í raun.