O încărcare reîncercată după o provocare a proxy-ului are nevoie din nou de corpul ei. Pentru conectorul Apache al Jersey 2, selectați procesarea entității memorate în buffer în configurația folosită pentru construirea acelui client:

ClientConfig config = new ClientConfig();
config.connectorProvider(new ApacheConnectorProvider());
config.property(ClientProperties.PROXY_URI,
                "http://proxy.example.net:8080");
config.property(ClientProperties.REQUEST_ENTITY_PROCESSING,
                RequestEntityProcessing.BUFFERED);

Efectuați încărcarea prin clientul rezultat. Aceste tipuri provin din pachetele Jersey client și Apache-connector; setarea unei configurații neutilizate nu ar afecta cererea.

Conectorul înfășoară o entitate memorată în buffer în BufferedHttpEntity de la Apache. Entitatea sa de streaming nememorată nu este repetabilă. Memorarea în buffer oferă fluxului de autentificare octeți pe care îi poate retrimite în loc să recitească un producător deja consumat.

Nu garantează că autentificarea se termină după un singur 407. Unele scheme necesită în mod legitim mai multe schimburi, așa că examinați întreaga negociere înainte de a trata o altă provocare ca stare pierdută.

Păstrați dimensiunea corpului în bugetul de memorie. O încărcare mare în streaming are nevoie de o strategie de reluare potrivită acelei sarcini; activarea memorării în buffer pentru fiecare cerere poate schimba un eșec de negociere pe epuizarea memoriei.

Articole similare