|
query string в данные 1с | ☑ | ||
---|---|---|---|---|
0
1c_yeah
15.12.20
✎
16:12
|
Всем привет.
Подскажите как преобразовать данные в формате Query String в данные 1с (массив структур, соответствие и тп). Пример строки Query String requestType=apiCallCompleted¶&attemptsCounter=2¶&callDetails[companyID]=18628¶&callDetails[generalCallID]=2295645083¶&callDetails[callID]=2295645083¶&callDetails[startTime]=1607961242¶&callDetails[callType]=1¶&callDetails[internalNumber]=107¶&callDetails[internalAdditionalData]=¶&callDetails[externalNumber]=0958767043¶&callDetails[waitsec]=43&callDetails[billsec]=232¶&callDetails[disposition]=ANSWER&callDetails[recordingStatus]=uploaded¶&callDetails[isNewCall]=0¶&callDetails[customerData][id]=19457215¶&callDetails[customerData][name]=Устинов+Игорь¶&callDetails[employeeData][name]=Богдан+Нагорний¶&callDetails[employeeData][email]=bn%40vencon.ua¶&callDetails[pbxNumberData][number]=0443344047¶&callDetails[historyData][0][waitsec]=43¶&callDetails[historyData][0][billsec]=232¶&callDetails[historyData][0][disposition]=ANSWER¶&callDetails[historyData][0][pbxNumberData][number]=0443344047¶&callDetails[linkToCallRecordOverlayInMyBusiness]=https%3A%2F%2Fmy.binotel.ua%2F%3Fmodule%3Dhistory%26subject%3D0958767043%26sacte%3Dovl-link-pb-2295645083¶&callDetails[linkToCallRecordInMyBusiness]=https%3A%2F%2Fmy.binotel.ua%2F%3Fmodule%3Dcdrs%26action%3DgenerateFile%26fileName%3D2295645083.mp3%26callDate%3D2020-14-12_17%3A54%26customerNumber%3D0958767043%26callType%3Doutgoing |
|||
1
mikecool
15.12.20
✎
16:14
|
парсить программно
|
|||
2
1c_yeah
15.12.20
✎
16:16
|
(1) Это понятно. Может есть готовые способы? Гугли не нашел что бы у кого-то возникала такая необходимость.
|
|||
3
mikecool
15.12.20
✎
16:18
|
(2) откуда получил результат? может есть другие варианты?
это же строка запроса для сайта? |
|||
4
Кирпич
15.12.20
✎
16:20
|
СтрРазделить(,"&")
потом каждую строчку СтрРазделить(,"=") |
|||
5
1c_yeah
15.12.20
✎
16:20
|
(3) Не, других нету. На мой урл сервер телефонии шлет только в таком виде информацию о звонке
|
|||
6
Кирпич
15.12.20
✎
16:24
|
ну и РаскодироватьСтроку( ,СпособКодированияСтроки.КодировкаURL)
для всяких https%3A%2F%2Fmy.binotel.ua |
|||
7
oleg-alt
15.12.20
✎
16:36
|
(3) Для GET-запроса данных многовато, там ограничение в 256 символов
|
|||
8
acht
15.12.20
✎
16:37
|
(7) > ограничение в 256 символов
Это тебе на будущее: https://stackoverflow.com/questions/812925/what-is-the-maximum-possible-length-of-a-query-string |
|||
9
Кирпич
15.12.20
✎
16:48
|
(0) На вот. Копипасть и беги в кассу.
&НаСервере Функция ЗапросВСоответствие(Данные) Список = Новый Соответствие(); Строки = СтрРазделить(РаскодироватьСтроку(Данные,СпособКодированияСтроки.КодировкаURL),"&"); Для Каждого Стр Из Строки Цикл Парам = СтрРазделить(Стр,"="); Список.Вставить(Парам[0],Парам[1]); КонецЦикла; Возврат Список; КонецФункции |
|||
10
1c_yeah
15.12.20
✎
17:02
|
(7) Пост запросом присылают
|
|||
11
1c_yeah
15.12.20
✎
17:03
|
(9) Ну там не настолько простая структура, я бы не спрашивал если бы можно было бы так распарсить
|
|||
12
1c_yeah
15.12.20
✎
17:09
|
Например вот эта строка
&callDetails[historyData][0][disposition]=ANSWER в данных 1с (например в структуре) будет выглядеть вот так callDetails.historyData[0].disposition = ANSWER callDetails - Ключ, Значение = Структура с ключем historyData Значение historyData = Массив Структур, Каждый элемент которой содержит Ключ disposition |
|||
13
Кирпич
15.12.20
✎
17:10
|
(12) А ну тогда парсер пиши
|
|||
14
oleg-alt
15.12.20
✎
17:46
|
(8) Вы меня не знаете, а уже на ты :)
У вас так принято? п.с. 1. про чтение RFC надо было ссылку на источник давать w3c.org (Комитет по стандартизации Интернет) 2. Ни один здравомыслящий web-разработчик не будет рисковать и делать get-запросы в неразумных пределах, т.к. он понятия не имеет тип браузера пользователя. Да и вообще в открытом формате запросы передавать не делают "даже" китайские роутеры ТП-Линк, они их не просто шифруют, а еще и случайно генерируют каждый раз. |
|||
15
mistеr
15.12.20
✎
17:49
|
(0) Хз что за формат. Символы "¶" может лишние?
|
|||
16
acht
15.12.20
✎
18:58
|
(14) Да я с тобой, собственно, и не собираюсь знакомится.
Найди, пожалуйста, слово "браузер" в обсуждаемой проблеме. Потом можешь вспомнить и пофилософствовать еще про https какой-нибудь. |
|||
17
acht
15.12.20
✎
19:00
|
(0) Если допустить, что тебе в querystring не будут передавать вложенные массивы, типа a[b[10]], то как-то так:
|
|||
18
acht
15.12.20
✎
19:02
|
Строку
ЧастиПараметра = СтрРазделить(Параметр, "="); можно выбросить |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |