Upload koji se ponavlja nakon izazova proxyja ponovo treba svoje tijelo. Za Apache konektor u Jersey 2 odaberite obradu baferiranog entiteta u konfiguraciji kojom se gradi taj klijent:

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);

Izvršite upload kroz dobijeni klijent. Ovi tipovi dolaze iz paketa Jersey client i Apache-connector; postavljanje nekorištene konfiguracije ne bi uticalo na zahtjev.

Konektor obavija baferirani entitet u Apacheov BufferedHttpEntity. Njegov nebaferirani streaming entitet nije ponovljiv. Baferiranje daje toku autentifikacije bajtove koje može ponovo poslati umjesto ponovnog čitanja iskorištenog producenta.

To ne garantuje da autentifikacija završava nakon jednog 407. Neke sheme zakonito zahtijevaju nekoliko razmjena, zato pregledajte cijelo pregovaranje prije nego novi izazov tretirate kao izgubljeno stanje.

Držite veličinu tijela unutar budžeta memorije. Veliki streaming upload treba strategiju ponavljanja prilagođenu tom opterećenju; uključivanje baferiranja za svaki zahtjev može zamijeniti neuspjeh pregovaranja za iscrpljivanje memorije.

Povezani članci