[Android] HttpClient пост / положить ограничение длины StringEntity? - PullRequest
0 голосов
/ 26 апреля 2011

Я вижу проблему с отправкой / установкой длинного StringEntity HttpClient.Когда сущность короткая, проблем вообще нет.Однако, когда длина превышает значение (что-то около 1400 символов), пакет http никогда не может быть отправлен (я перехватил интерфейс, используя WireShark).На самом деле соединение установлено, но данные не передаются, поэтому получатель получил исключение тайм-аута.Мне интересно, если это предел длины.Я попытался увеличить время ожидания соединения и сокета, что только заставило меня подождать, чтобы увидеть время ожидания ... И я также попытался использовать InputStreamEntity, тоже не сработало.

[Обновить]: я пытался использовать HttpURLConnection напрямую вместо HttpClient.Та же проблема все еще существует.Тем не менее, у меня есть некоторые выводы.Когда я заставил пакет разрезаться на куски (используя HttpURLConnection.setChunkedStreamingMode), WireShare захватил некоторый сегмент пакета, при этом предыдущие сегменты пропали.Я предполагаю, что это должно быть ошибка в библиотеке Apache http.

Ответы [ 3 ]

1 голос
/ 28 апреля 2011

Проблема решена.Мне потребовалось несколько дней, чтобы выяснить, что проблема в моем беспроводном маршрутизаторе.У него есть некоторые странные настройки, которые обрезают большие входящие http сообщения.

0 голосов
/ 26 апреля 2011

Я думаю, что это может помочь вам длина URL

0 голосов
/ 26 апреля 2011

Возможно, это тайм-аут на стороне сервера. Также убедитесь, что вы используете org.apache.client.httpclient jar. Официально нет максимальной длины для URL. Смотрите здесь http://www.w3.org/Protocols/rfc2616/rfc2616.html

...