Apache HttpClient UrlEncodedFormEntity предельный размер - PullRequest
1 голос
/ 21 декабря 2011

Я использую Apache HttpClient для соединения с WS.Все работает нормально, но когда приложение пытается отправить сообщение большого размера, оно ломается.

Я использую HttpClint следующим образом:

  • Создание сообщения XML дляREST WS
  • Это сообщение является строкой, строка является объектом, отображаемым в формате XML.
  • Я использую UrlEncodedFormEntity для передачи параметра xml в URL

Когда HttpClient отправляет контекст со стороны WS, параметр с XML пуст.Я проверял, когда xml отправляется и все в порядке, я имею в виду, что XML создан правильно.

Если размер xml меньше, то он работает нормально.Это поведение похоже на то, если HttpClient имеет предельный размер для поста или UrlEncodedFormEntity.

Есть идеи?Спасибо.

Ответы [ 3 ]

0 голосов
/ 21 декабря 2011

UrlEncodedFormEntity не накладывает любое ограничение на длину контента, но на самом деле многие HTTP-серверы так делают, поскольку контент 'application / x-www-form-urlencoded' обычно буферизуется в памяти на сервере. боковая сторона.

0 голосов
/ 11 января 2012

Спасибо за помощь, решение было простым: ограничение было в Tomcat, поскольку по умолчанию параметр maxPostSize равен 2 МБ (я имею в виду, если он отсутствует в теге соединителя в server.xml), поэтому я изменил его на15Mb.Я нахожу соединитель тега с протоколом HTTP и добавил атрибут maxPortSize = "15728640" для! 5Mb, и он работает нормально !!!!

0 голосов
/ 21 декабря 2011

Если вы публикуете файл XML, вы не должны использовать UrlEncodedFormEntity, вы должны использовать FileEntity с файлом XML.Таким образом, вы можете избежать ограничения UrlEncodedFormEntity.

...