Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java: Работа с сетью > HTTP POST запрос, проблема при кодировке параметра |
Автор: unkis 13.12.2008, 21:16 |
Ребята у меня такая проблема, нужно организовать один POST запрос, это я реализую с помощью HTTP Client от Apache. Проблема в том, что в параметре присутствует знак %, Который при передачи почему-то кодируется в %25. Так вот как сказать что-бы при передачи ничего не кодировалось? |
Автор: v2v 13.12.2008, 22:14 |
А где ошибка ? 25 - это ASCII код знака % , а знак % добавляет Http Client что бы указать серверу что дальше идёт ASCII код. |
Автор: COVD 14.12.2008, 01:09 |
Просветите, а зачем в POST что-то надо кодировать? В GET - понятно, там параметры включены в строку адреса. Поскольку в параметре могут быть недопустимые для семантики адреса символы ( пробелы, .. ), то их заменяют на %.. Практический совет - используйте сановский стандартный URLConnection. |
Автор: ivg 14.12.2008, 08:53 |
В http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4 со спецификацией HTML при передаче данных форм с Content-Type: application/x-www-form-urlencoded. |
Автор: COVD 14.12.2008, 19:27 |
Спасибо, понятно. Тогда "что-бы при передачи ничего не кодировалось" надо просто указать другой Content-Type - text/html, например. PS. Все же, не ясно, зачем спецификация имеет Content-Type: application/x-www-form-urlencoded. Наверное, потому, что ввод из формы допускается отсылать на сервер также и методом GET. Если же POST используется, то вроде нет необходимости в кодировании: достаточно указать, что текст и тогда никаких проблем с определением конца строки и конца данных на сервере не возникает. Соответственно, нет необходимости использовать Content-Type: application/x-www-form-urlencoded в описании html - формы, если POST. |