Буфериране на качване в Jersey 2 за повторни опити при прокси удостоверяване
Направете тялото на заявката на Jersey 2 с Apache конектор повторяемо, когато договарянето на удостоверяване трябва да изпрати качването отново.
Качване, което се повтаря след предизвикателство от прокси, отново се нуждае от тялото си. За Apache конектора на Jersey 2 изберете обработка на буферирано тяло в конфигурацията, използвана за създаване на този клиент:
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);Извършете качването през получения клиент. Тези типове идват от пакетите Jersey client и Apache-connector; задаването на неизползвана конфигурация не би повлияло на заявката.
Конекторът обвива буферирано тяло в BufferedHttpEntity на Apache. Неговото небуферирано потоково тяло не е повторяемо. Буферирането дава на потока за удостоверяване байтове, които може да изпрати отново, вместо да препрочита изчерпан производител.
Това не гарантира, че удостоверяването приключва след един 407. Някои схеми законно изискват няколко размени, затова прегледайте цялото договаряне, преди да приемете ново предизвикателство за загубено състояние.
Дръжте размера на тялото в рамките на бюджета за памет. Голямото потоково качване се нуждае от стратегия за повторение, подходяща за такова натоварване; включването на буфериране за всяка заявка може да замени неуспех при договарянето с изчерпване на паметта.