|
Не отрабатывает УстановитьТелоИзСтроки | ☑ | ||
---|---|---|---|---|
0
Смотрящий от 1С
24.10.22
✎
17:20
|
&НаКлиенте
Процедура МойЗапрос(Команда) Соединение = Новый HTTPСоединение("host.site",443,,,,,Новый ЗащищенноеСоединениеOpenSSL); ИмяПользователя = "user"; Пароль = "12345"; СтрокаАвторизации = ПолучитьBase64СтрокуИзДвоичныхДанных( ПолучитьДвоичныеДанныеИзСтроки( ""+ИмяПользователя+":"+Пароль,КодировкаТекста.UTF8,Ложь)); Фильтр = РезультатФильтра(); Заголовки = Новый Соответствие; Заголовки.Вставить("accept", "application/json"); Заголовки.Вставить("Api-Key", "Mvl9FkeRo39Dk"); Заголовки.Вставить("Content-Type", "application/json"); Заголовки.Вставить("Authorization", "Basic "+СтрокаАвторизации); Запрос = Новый HTTPЗапрос("/api/catalog/list", Заголовки); Запрос.УстановитьТелоИзСтроки("text="+Фильтр); //в Фильтре строка // { //"filter": { //"ACTIVE": "Y", //"IBLOCK_ID": "111" //} //} // в постмене точно такой же фильтр отрабатывает. В 1с возвращает все без учета фильтра Почему такое может быть? // Ответ = Соединение.ОтправитьДляОбработки(Запрос); ЧтениеJSON = Новый ЧтениеJSON; ЧтениеJSON.УстановитьСтроку(Ответ.ПолучитьТелоКакСтроку()); Данные = ПрочитатьJSON(ЧтениеJSON, Ложь); КонецПроцедуры |
|||
1
Смотрящий от 1С
24.10.22
✎
17:22
|
в Фильтре строка
{ "filter": { "ACTIVE": "Y", "IBLOCK_ID": "111" } } // в постмене точно такой же фильтр отрабатывает. В 1с возвращает все без учета фильтра Почему такое может быть? // |
|||
2
Смотрящий от 1С
24.10.22
✎
17:34
|
Попробовал Запрос.ПолучитьТелоКакСтроку(). Там все отлично
text={ "filter": { "ACTIVE": "Y", "IBLOCK_ID": "111" } } |
|||
3
Kassern
24.10.22
✎
17:39
|
(0) Я надеюсь вы тело через ЗаписьJSON собирали? С ИспользоватьBOM поиграйтесь в в УстановитьТелоИзСтроки
|
|||
4
Смотрящий от 1С
24.10.22
✎
17:51
|
(3) вот сборка фильтра Функция РезультатФильтра()
Данные = Новый Структура(); Данные.Вставить("ACTIVE","Y"); Данные.Вставить("IBLOCK_ID","111"); Результат = ПростаяЗаписьJSON(Данные); ДанныеФильтра = Новый Структура; ДанныеФильтра.Вставить("filter",Данные); РезультатФильтра = ПростаяЗаписьJSON(ДанныеФильтра); Возврат РезультатФильтра; КонецФункции |
|||
5
Kassern
24.10.22
✎
17:53
|
(4) А что в ПростаяЗаписьJSON?
|
|||
6
Смотрящий
24.10.22
✎
17:57
|
Запрос.УстановитьТелоИзСтроки("text="+Фильтр) вот это смущает.
Попробуй фильтр обернуть в структуру: Данные = Новый структура; Данные.Вставить("text", РезультатФильтра()); и уже Данные сериализовать |
|||
7
Смотрящий от 1С
24.10.22
✎
18:04
|
(6) не помогло. Попробовал прямо из отладчика скопировать значение фильтра и в Постмен вставить. Он отработал, то есть структура вроде правильная
(5) Функция ПростаяЗаписьJSON(Данные) ЗаписьJSON = Новый ЗаписьJSON; ЗаписьJSON.УстановитьСтроку(); ЗаписатьJSON(ЗаписьJSON,Данные); Возврат ЗаписьJSON.Закрыть(); КонецФункции |
|||
8
Смотрящий от 1С
24.10.22
✎
18:05
|
По этому примеру делал. Он отлично отрабатывает
Процедура Запрос(Команда) Соединение = Новый HTTPСоединение("speller.yandex.net",443,,,,,Новый ЗащищенноеСоединениеOpenSSL); ТекстНаПроверку = "Предложение с ашибкой"; Заголовки = Новый Соответствие; Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded"); Запрос = Новый HTTPЗапрос("/services/spellservice.json/checkText", Заголовки); Запрос.УстановитьТелоИзСтроки("text="+ТекстНаПроверку); Ответ = Соединение.ОтправитьДляОбработки(Запрос); ЧтениеJSON = Новый ЧтениеJSON; ЧтениеJSON.УстановитьСтроку(Ответ.ПолучитьТелоКакСтроку()); Данные = ПрочитатьJSON(ЧтениеJSON, Ложь); КонецПроцедуры |
|||
9
Смотрящий от 1С
24.10.22
✎
18:08
|
Решил ))
Вместо Запрос.УстановитьТелоИзСтроки("text="+Фильтр); сделал Запрос.УстановитьТелоИзСтроки(Фильтр); Всем спасибо |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |