HttpMethod getResponseBodyAsString не рекомендуется, но почему - PullRequest
0 голосов
/ 25 января 2019

Выполнял рекомендации Apache для HttpClient (http://hc.apache.org/httpclient-3.x/performance.html), в котором упоминается, что

Потоковая передача ответа: Рекомендуется использовать тело ответа HTTP какпоток байтов / символов с использованием метода HttpMethod # getResponseBodyAsStream. Использование HttpMethod # getResponseBody и HttpMethod # getResponseBodyAsString категорически не рекомендуется.

Но не удалось найти причину для того же самого.GetMethod и хотел бы знать, что я делаю это неправильно?

1 Ответ

0 голосов
/ 25 января 2019

Из документации: «HttpClient способен эффективно транслировать тело запроса / ответа. Большие объекты могут отправляться или приниматься без буферизации в памяти.»

Для метода getResponseBodyAsString требуется HttpClient для буферизации всегоОтвет в памяти.По сути, вы даете HTTP-серверу возможность завершить ваш процесс, отправив огромный ответ.

Но вы должны делать то, что должны.Если ваше приложение требует, чтобы вы обрабатывали ответ как String в памяти, и вы уверены, что ответ не будет слишком большим (или вы готовы добавить проверку размера), то сделайте это.

...