![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
danilkus |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 10.12.2007 Репутация: нет Всего: нет |
Задача такова, что нужно обработать Post запрос в котором есть данные, но битый заголовок. Он отличается от обычного тем, что в нем Content-Length: 0. Все остальные поля правильные.
Content-type: multipart/form-data. Принимаю этот запрос сервлетом, но при попытке получить из HttpServletRequest InputStream обнаруживаю, что данных в нем нет. Запрос генерю самописным генератором, пишу прямо в сокет. При попытке послать аналогичный запрос, но с правильным Content-Length - все замечательно. Задача научиться обрабатывать запросы с такой неправильной длинной корректно. Подозреваю, что Tomcat "обрезает" поток согласно заголовку. В кодах томката поковырялся, но они для меня, если честно, темный лес. Какие будут идеи? |
|||
|
||||
COVD |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 11 Всего: 43 |
"обрезает" согласно протоколу http, который предписывает методу пост сначала отправлять размер данных в хедере, потом сами данные. Сервера в интернете, которые соблюдают протокол, скорее всего не пересылают данные, обнаружив нулевую длину. Можно посмотреть проект Comet в апаче. Там фиксированный размер запроса каким-то образом обходится именно ценой отступления от требований протокола. Возможно, размер данных устанавливается максимальным. Это сообщение отредактировал(а) COVD - 10.12.2007, 17:22 |
|||
|
||||
danilkus |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 10.12.2007 Репутация: нет Всего: нет |
Сервера в интернете то да. Но мне нужно решить задачу в локальных условиях. Запрос идет напрямую от моего клиента на томкат. Как заставить не обрезать?
|
|||
|
||||
COVD |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 11 Всего: 43 |
модифицировать томкат, чтобы он определял конец данных не на основании длины, указанной в хедере, а по другому признаку. или модифицируйте более простой сервер - такой например (там все в одном файле).
Это сообщение отредактировал(а) COVD - 10.12.2007, 18:49 |
|||
|
||||
ivg |
|
|||
![]() Autonomous R&D ![]() ![]() Профиль Группа: Участник Сообщений: 686 Регистрация: 8.2.2006 Где: Екатеринбург Репутация: 3 Всего: 81 |
||||
|
||||
danilkus |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 10.12.2007 Репутация: нет Всего: нет |
Собственно я и ожидал здесь встретить знатока томката, который бы подсказал где и что там нужно модифицировать. Версия томката 1.6
Добавлено через 3 минуты и 50 секунд Самописный клиент потому, что такой запрос никакой "правильный" клиент не выдаст. Мне нужно не привести запрос к правильному виду, а научиться обходиться с не правильными запросами. Такова уж задача. Если интересно такой запрос выдает ИЕ7.0 при некоторых обстоятельствах ![]() |
|||
|
||||
ivg |
|
|||
![]() Autonomous R&D ![]() ![]() Профиль Группа: Участник Сообщений: 686 Регистрация: 8.2.2006 Где: Екатеринбург Репутация: 3 Всего: 81 |
||||
|
||||
danilkus |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 10.12.2007 Репутация: нет Всего: нет |
Если бы я точно знал, конечно бы поделился. Проблема в том, что определенная (именно одна) версия ИЕ 7 посылает такой заголовок после непродолжительного простоя между запросами. Версию обновить возможности нет. |
|||
|
||||
COVD |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 11 Всего: 43 |
у вас там наверное javascript периодически что-то посылает и посылает не правильно Это сообщение отредактировал(а) COVD - 10.12.2007, 19:20 |
|||
|
||||
danilkus |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 10.12.2007 Репутация: нет Всего: нет |
Javascript конечно есть, но он работает не периодически, а по клику пользователя и ничего кроме form.submit не делает. Возможно виноват и JS вернее его интепретация этой версией ИЕ так как в ИЕ 6 и даже в других версиях ИЕ 7 такого не проявляется.
|
|||
|
||||
AlexeyVorotnikov |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 658 Регистрация: 18.6.2007 Где: Москва Репутация: 1 Всего: 18 |
Скорее всего, без модификации исходного кода Tomcat'а, застваить его работать неправильно невозможно.
-------------------- RTFM! Три источника и три составные части Java: The Java Language Specification, Java Platform API Specification, The Java Virtual Machine Specification |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Работа с сетью | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |