|
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 - нет таких заморочек
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |