2011-12-20 3 views
1

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

Я unsing HttpClint так:

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

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

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

любая идея? Спасибо.

ответ

0

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

0

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

+0

Фактически я создаю String с структурой XML, но не сам файл, но meaby я могу отправить его как File, чтобы избежать этой проблемы. Я попробую. Спасибо – aivaldi

+0

Если у вас уже есть String, вы можете использовать StringEntity вместо FileEntity. –

0

UrlEncodedFormEntity не накладывает каких-либо ограничение на длину содержимого, но многие серверы HTTP на самом деле, как «применение/х-WWW-форм-urlencoded» содержание, как правило, получает в буферной памяти на стороне сервера.

+0

Хорошо спасибо за информацию. Я настроил HTTP-сервер без каких-либо ограничений, но в любом случае проблема остается. – aivaldi

Смежные вопросы