|
При выполнении HTTP-запроса символ "\" преобразуется в "/". Как этого избежать? | ☑ | ||
---|---|---|---|---|
0
Alpen906
02.02.21
✎
08:23
|
После обновления платформы с 8.3.16 на 8.3.18 перестал работать один из HTTP-запросов системы взаимодействия в внешним сервисом. После попыток понять причину на тестовом стенде обнаружено, что при выполнении HTTP-запроса методом HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос) символ "\" преобразуется в "/". Запрос выполняется стандартно.
ssl = Новый ЗащищенноеСоединениеOpenSSL(); HTTPСоединение = Новый HTTPСоединение(ИмяХоста, , , , , , ssl ); HTTPЗапрос = Новый HTTPЗапрос; HTTPЗапрос.Заголовки.Вставить("Content-type", "application/x-www-form-urlencoded"); НазваниеКоманды = "wialon/ajax.html?svc=unit/update_sensor"; HTTPЗапрос.АдресРесурса = НазваниеКоманды + СтрокаЗапроса; Ответ = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос); Переменная СтрокаЗапроса содержит параметр, заданный строкой СтрокаКонфигурацииДатчика = "{\""appear_in_popup\"":true,\""show_time\"":false,\""pos\"":1,\""cm\"":0,\""mu\"":\""0\"",\""act\"":1,\""text_params\"":0,\""uct\"":0,\""timeout\"":0,\""ci\"":{}}"; Так вот эта строка после выполнения запроса преобразуется к следующему виду:"{/"appear_in_popup/":true,/"show_time/":false,/"pos/":1,/"cm/":0,/"mu/":/"0/",/"act/":1,/"text_params/":0,/"uct/":0,/"timeout/":0,/"ci/":{}}". То есть символ "\" преобразуется в "/". Как этого избежать? Экранировать пробовал. Не помогло. Или неправильно экранирую. До обновления платформы запрос работал нормально. Прошу помощи у уважаемого сообщества. Буду признателен за любой пинок в нужном направлении. |
|||
1
ДенисЧ
02.02.21
✎
08:28
|
Внезапный вопрос.
Аназачем вот такое надо было делать: \""appear_in_popup\"":true, ? Виалон без слешей прекрасно понимает. |
|||
2
Alpen906
02.02.21
✎
08:30
|
Строчку прислали с линии поддержки Виалон. Думаю вот по этой причине:
Sensor configuration Sensor configuration params: :!: Note: JSON-object is sent as a string, that's why it must be within double quotes, all key and value double quotes must be escaped (\“). "{ \"act\":<bool>, \"appear_in_popup\":<bool>, \"ci\":<object>, \"filter\":<long>, \"mu\":<uint>, \"pos\":<uint>, \"show_time\":<bool>, \"unbound_code\":<text>, \"validate_driver_unbound\":<bool>, \"timeout\":<uint>, \"uct\":<bool>, \"lower_bound\":<double>, \"upper_bound\":<double> }" |
|||
3
ДенисЧ
02.02.21
✎
08:38
|
У меня спокойно проходило без.
|
|||
4
ДенисЧ
02.02.21
✎
08:38
|
Это они пример для жабоскрипта и подобных языков дали, наверное.
|
|||
5
Alpen906
02.02.21
✎
08:43
|
(3) Сейчас проверю.
(4) Раньше работало. Теперь перестало. |
|||
6
craxx
02.02.21
✎
08:44
|
(2) не надо там никаких бэкслэшй. Все без них работает
|
|||
7
Alpen906
02.02.21
✎
08:48
|
(3)(6). Спасибо огромное. Действительно все работает без бэкслэшей. Заморочился.
|
|||
8
Alpen906
02.02.21
✎
10:11
|
В дополнение к вопросу. Раньше для переноса строк в текстовых сообщениях использовал последовательность "\n". Теперь при выполнении запроса она аналогично преобразуется к "/n". Естественно переноса строки не происходит. Как правильно указать перенос строки. Символы.ПС не помогли.
|
|||
9
Alpen906
02.02.21
✎
10:18
|
(8) Поторопился. Символы.ПС работает. Все норм. Спасибо, коллеги.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |