Apache HttpClient 4.2: cadw AuthCache'r proxy ar gyd-destun y cais
Cadwch gronfa Basic-auth proxy HttpClient 4.2 ar yr un cyd-destun gweithredu a ddefnyddir gan geisiadau dilynol.
Mewn ap HttpClient 4.2.2 hŷn, mae darparwr manylion a chronfa dilysu yn gwneud gwaith gwahanol. Mae'r darparwr yn cyflenwi'r cyfrif; mae'r gronfa yn gadael i gynllun dilysu a baratowyd ymlaen llaw gymryd rhan cyn i her arall gyrraedd.
Ar gyfer yr hen constructor BasicScheme sy'n benodol i'r proxy, dyma'r trosglwyddiad:
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);Mae'r darn hwn yn tybio bod client eisoes yn meddu ar y llwybr proxy cyfatebol a'r darparwr manylion. proxy yw ei HttpHost, a request yw'r gweithrediad ei hun. Rhaid i allwedd y gronfa ddisgrifio'r cyfryngwr hwnnw, nid gwefan y gyrchfan.
Pasiwch y cyd-destun wedi'i lenwi i execute. Os byddwch yn ei adeiladu ac yna'n defnyddio gorlwythiad sy'n creu cyd-destun arall, bydd y gronfa y tu allan i'r gyfnewid. Ar gyfer gweithrediadau diweddarach sydd i rannu'r cyflwr dilysu hwnnw, cadwch y cyd-destun priodol yn lle ailadeiladu un gwag bob tro.
Mae'r cyflwr PROXY penodol yn perthyn i'r API hŷn hwn. Mae TARGET yn ymwneud â dilysu'r gyrchfan. Mae cenhedlaethau HttpClient mwy newydd wedi newid pecynnau a APIau dilysu, felly defnyddiwch hyn fel arweiniad cynnal ar gyfer cod 4.2 presennol, nid fel rysáit ar gyfer cleient newydd.
Gall cyfnewid arferol sy'n cael ei yrru gan her fod yn gywir o hyd. Hau dilysiad Basic dim ond ar gyfer proxy hysbys a bwriadedig, a defnyddiwch neu ryddhewch bob ymateb cyn bod angen ei gysylltiad ar y gweithrediad nesaf. Y canlyniad defnyddiol yw cyfrif a chynllun wedi'i gronni ynghlwm wrth y gweithrediad sy'n anfon y cais mewn gwirionedd.