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