1
Юрий Лазаренко
25.04.17
✎
14:26
|
(0) Сервис работает точно так же, как как и при GET. Просто параметры надо брать из тела запроса
// В зависимости от типа запроса извлечем его параметры
Если ТипЗнч(Запрос.ПараметрыЗапроса) = Тип("ФиксированноеСоответствие") И Запрос.ПараметрыЗапроса.Количество() > 0 Тогда
// !!!!! Здесь возникают ошибки при передаче в параметрах значений с запрешенными знаками (например, кавычкой)
// Это GET-запрос, параметры хранятся в Запрос.ПараметрыЗапроса
Для Каждого КлючИЗначение Из Запрос.ПараметрыЗапроса Цикл
ПараметрыЗапроса.Вставить(КлючИЗначение.Ключ, КлючИЗначение.Значение);
КонецЦикла;
Иначе
// Это POST-запрос, параметры содержатся в теле запроса в виде строки
ПараметрыЗапроса = Новый Соответствие;
ПараметрыСтрокой = СтрЗаменить(РаскодироватьСтроку(Запрос.ПолучитьТелоКакСтроку(), СпособКодированияСтроки.КодировкаURL), "&", Символы.ПС);
Для Счетчик = 1 По СтрЧислоСтрок(ПараметрыСтрокой) Цикл
ТекущийПараметр = СтрЗаменить(СокрЛП(СтрПолучитьСтроку(ПараметрыСтрокой, Счетчик)), "=", Символы.ПС);
Если ЗначениеЗаполнено(ТекущийПараметр) Тогда
ПараметрыЗапроса.Вставить(СтрПолучитьСтроку(ТекущийПараметр, 1), СтрПолучитьСтроку(ТекущийПараметр, 2));
КонецЕсли;
КонецЦикла;
КонецЕсли;
|
|
2
EverGreenMouse
26.04.17
✎
12:21
|
Вроде разобрался, спасибо)
Но один вопрос пока не отпускает:
я беру Запрос.ПолучитьТелоКакСтроку()
Как мне получить JSON, который я туда передаю? не очень хочется воевать с РазложитьСтрокуВМассивПодстрок()
|
|
3
ГдеСобака Зарыта
26.04.17
✎
12:26
|
ТелоЗапроса = Запрос.ПолучитьТелоКакСтроку();
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(ТелоЗапроса);
СтруктураJSON = ПрочитатьJSON(ЧтениеJSON,, МассивПолейДата);
ЧтениеJSON.Закрыть();
|
|