Приложение Java отправляется через POST (без кода) - PullRequest
0 голосов
/ 01 августа 2011

У меня нет кода, доступного сейчас, но я опишу свою ситуацию и опубликую код позже :).По сути, моя проблема с загрузкой изображения на сервер через POST (из настольного приложения / клиента Java).Я нашел здесь несколько дискуссий по этому вопросу, но они либо включали использование классов org.apache.commons.httpclient, и у меня большая часть кода реализована с использованием класса URLConnection, ИЛИ с ошибками в нем.Проверьте этот выбранный ответ, чтобы увидеть, что я следовал, как можно более подробно: Использование java.net.URLConnection для запуска и обработки HTTP-запросов

В любом случае, я создал скрипт php на своем локальном сервереэто обрабатывает форму с загрузкой файла.Я проверил это из одного статического HTML, который был создан вместе с .php.Затем я проверил это без загрузки файла, и он работает нормально.Это также работает нормально, когда я отправляю простой текстовый файл.Это похоже на проблему, связанную с кодированием.Может быть, какой-то странный персонаж нарушает мою передачу?

Как я уже сказал, я добавлю код, если необходимо, позже сегодня, но меня интересует ваше мнение / опыт, связанный с кодированием изображений при отправке через POST.Должен ли я сделать что-то еще, это не упомянуто в ссылке выше.

ВОПРОС: нужно ли использовать какую-то кодировку для фактических данных при отправке двоичного файла в многосоставном сообщении через сообщение http?

Извините за отсутствие кода прямо сейчас.

Приветствия

Ответы [ 2 ]

1 голос
/ 01 августа 2011

Если вы используете URLConnection для обработки multipart / form-data вручную, я думаю, вам нужно добавить «Content-Transfer-Encoding: binary» к части изображения. См. документы W3C .

1 голос
/ 01 августа 2011

Что касается вашего вопроса: да, вам нужно закодировать файл.

Я бы использовал для этого HttpClient, поскольку он позаботится обо всех этих вещах для вас Не нужно изобретать велосипед. См. Как загрузить файл с использованием библиотеки Java HttpClient, работающей с PHP для кода.

...