|
HTTP-сервис - как обработать POST запрос?
| ☑ |
0
Akela has missed
31.10.19
✎
10:12
|
Привет!
В инете везде пишут про отправку запроса, а про прием что-то совсем мало.
Сделал http-сервис принимающий POST запрос, который должен содержать структуру JSON.
В исходных данных, которые мне отправляют на сервис, все ок.
Но во входящих данных, вижу что в строке запроса все пробелы заменены на плюсы "+".
И в начале строки всегда стоит "text=".
Таким образом чтобы привести запрос к исходному виду использую нижеследующий код.
Но что-то мне не нравится такое решение...
Может есть какой-то более "правильный" способ обработки запроса?
СтрокаЗапроса = Запрос.ПолучитьТелоКакСтроку();
СтрокаЗапроса = СтрЗаменить(СтрокаЗапроса, "+", "%20");
СтрокаЗапроса = РаскодироватьСтроку(СтрокаЗапроса, СпособКодированияСтроки.КодировкаURL);
Если Лев(СтрокаЗапроса, 5) = "text=" Тогда
СтрокаЗапроса = Прав(СтрокаЗапроса, СтрДлина(СтрокаЗапроса) - 5);
КонецЕсли;
ЧтениеJSON = Новый ЧтениеJSON();
ЧтениеJSON.УстановитьСтроку(СтрокаЗапроса);
СтруктураЗапроса = ПрочитатьJSON(ЧтениеJSON);
ЧтениеJSON.Закрыть();
|
|
1
mikecool
31.10.19
✎
10:18
|
а просто скормить тело ЧтениеJSON пробовал?
|
|
2
Akela has missed
31.10.19
✎
10:22
|
(1) Из-за того что вначале стоит "text=" json не читается.
|
|
3
dmt
31.10.19
✎
10:24
|
(0) > В исходных данных, которые мне отправляют на сервис, все ок.
Ты сам отправляешь или кто-то другой?
Попробуй сам вручную postman'ом запрос сформировать
|
|
4
Akela has missed
31.10.19
✎
10:29
|
(3) да и у меня тоже самое приходит
отправляю:
{
"Param": "hello mista"
}
приходит что-то вроде:
text={
"Param":+"hello+mista"
}
|
|
5
dmt
31.10.19
✎
10:36
|
(4) В заголовке стоит application/json ?
|
|
6
palsergeich
31.10.19
✎
10:44
|
Ерунда какая то. Сколько сервисов делал - ни разу такого не видел.
Если я правильно прочитал - то проблема с данными которые к тебе приходят.
Вот пинай тех кто формирует эту строку.
|
|
7
Akela has missed
31.10.19
✎
10:44
|
(5) может быть и нет, ща проверим :)
|
|
8
dmt
31.10.19
✎
10:53
|
(6) Аналогично.
Но он же вручную из postman сформировал запрос и та же фигня.
|
|
9
timurhv
31.10.19
✎
11:27
|
(7) Проверьте отправку через расширение в Chrome: Talend API Tester
|
|
10
palsergeich
31.10.19
✎
11:34
|
(8) Я бы проверил курлом или другой 1с базой.
|
|
11
oleg_km
31.10.19
✎
11:47
|
Может отправляющая сторона принудительно кодирует данные? У меня 1С и отправляет POST и принимает POST - нет таких заморочек
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший