Отправка POST-запроса RAW-данных с помощью HTML-формы? - PullRequest
15 голосов
/ 12 июля 2011

Мне нужно отправить необработанные данные в теле запроса POST в веб-службу.Могу ли я сделать это с помощью формы HTML?

Использование стандартного поля ввода HTML, похоже, неизбежно создает тело POST вида <name_of_input_field>=<DATA>, тогда как я просто хотел бы опубликовать <DATA>.

Нужно ли прибегать к выполнению этого запроса с помощью JavaScript?

Ответы [ 3 ]

9 голосов
/ 12 июля 2011

Можно ли сделать это с помощью HTML-формы?

Нет.

Форма может отправлять данные application / x-www-form-urlencoded или multipart / form-data.

Если вы хотите использовать другой формат данных, вы должны начать смотреть на JavaScriptи XHR (и подчиняются той же политике происхождения и т. д.).

Лучше было бы написать код на стороне сервера, чтобы вместо этого принять одну из вышеперечисленных кодировок - нет недостатка в библиотеках, которые могут их декодировать.

3 голосов
/ 13 августа 2017

Здесь есть потенциальный взлом. Если в ваших данных есть либо «=», либо вы можете изменить их так, чтобы «=» можно было добавить безопасным образом, вы можете:

  • Установить тип формы текста / обычный
  • Установить скрытый ввод с именем , взятым с начала вашего ваши данные, кроме первого "="
  • Установить поля ввода значение на следующий байт «=» до конца данных.

Источник, где я узнал об этой технике:

https://systemoverlord.com/2016/08/24/posting-json-with-an-html-form.html

0 голосов
/ 27 января 2017

Иначе, используйте CURL, wget или другие инструменты командной строки.

curl -X POST -d "Your raw body data" -H "Content-type: text/plain" http://example.com/path/to/eternal/fame
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...