Вопрос:
Мне нужно отправить необработанные данные в тело запроса POST в Webservice. Могу ли я выполнить это с помощью HTML-формы?
Использование стандартного поля ввода HTML, по-видимому, неизбежно генерирует тело POST формы <name_of_input_field>=<DATA>, тогда как я просто хотел бы отправить сообщение <DATA>.
Нужно ли прибегать к выполнению этого запроса с помощью javascript?
Лучший ответ:
Можно ли выполнить это с помощью HTML-формы?
Нет.
Форма может отправлять данные приложения /x -www-form-urlencoded или multipart/form-data.
Если вы хотите использовать другой формат данных, вы должны начать смотреть на JavaScript и XHR (и подчиняться одной и той же политике происхождения и т.д.).
Лучше писать код на стороне сервера, чтобы принять одно из приведенных выше кодировок – нет недостатка в библиотеках, которые могут их декодировать.
Ответ №1
Здесь есть потенциальный хак. Если ваши данные либо имеют в себе natrual “=”, либо вы можете изменить его так, чтобы “=” можно было добавить каким-то безопасным способом, вы можете:
- Установите формы enctype в text/plain
- Задайте скрытый ввод с именем , взятым с начала вашего
ваши данные, но исключая первый “=” - Задайте поля ввода значение для байта, который следует
“=” до конца данных.
Источник, где я узнал об этом методе:
https://systemoverlord.com/2016/08/24/posting-json-with-an-html-form.html
Ответ №2
Еще, используйте CURL, wget или другие инструменты командной строки.
curl -X POST -d «Your raw body data» -H «Content-type: text/plain»