Имя: Пароль:
1C
1С v8
PUT запрос из 1с
0 Чеширрр
 
07.08.16
10:26
Необходимо сваять интеграцию с неким API - передать данные в формате json
С формированием файла понятно проблем нет.

А вот дальше?

Есть некие разделы тела запроса, куда я должен вложить эти данные, а я понятия не имею как это делается.

Если есть некий faq для "хелло ворлд" 1с ников которые с этим сталкиваются - кните носом пожалуйста...
1 Чеширрр
 
07.08.16
10:32
Точнее post запрос, извиняюсь)
2 Кирпич
 
07.08.16
11:00
3 Юрий Лазаренко
 
07.08.16
12:26
(0) Ну так HttpСоединение.Записать() тебе нужен:

HTTPСоединение.Записать (HTTPConnection.Put)
HTTPСоединение (HTTPConnection)
Записать (Put)
Синтаксис:

Записать(<HTTPЗапрос>)
Параметры:

<HTTPЗапрос> (обязательный)

Тип: HTTPЗапрос.
HTTP-запрос.
Возвращаемое значение:

Тип: HTTPОтвет.

Описание:

Используется для отправки данных на HTTP-сервер с помощью PUT-запроса.

Доступность:

Тонкий клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).
4 Юрий Лазаренко
 
07.08.16
12:30
Не, не Записать(), ОтправитьДляОбработки. В СП есть развернутый пример.
5 Юрий Лазаренко
 
07.08.16
12:33
Вот рабочий пример для работы с API Яндекс.Директ:

    // Установка соединения
    ПараметрыСервера = КэнДиректПовторноеИспользование.ПолучитьПараметрыСервераAPI(Профиль);
    Попытка
        ССЛ = Новый ЗащищенноеСоединениеOpenSSL;
        Заголовки = Новый Соответствие;
        Заголовки["Content-Type"]     = "application/json; charset=" + ПараметрыСервера.КодировкаЗапроса;
        //Заголовки["Content-Type"] = "application/json; charset=" + ПараметрыСервера.КодировкаОтвета;
        Соединение = Новый HTTPСоединение(ПараметрыСервера.АдресСервера,,,,, Истина);
    Исключение
        Результат.БылиОшибки = Истина;
        Результат.МассивСообщений.Добавить("Не удалось установить соединение с сервером: " + ИнформацияОбОшибке().Описание);
        Возврат Результат;
    КонецПопытки;

    // Отправка запроса
    ИмяФайлаЗапроса       = ПолучитьИмяВременногоФайла();
    ИмяФайлаРезультата = ПолучитьИмяВременногоФайла();
    Попытка
        // Запись запроса в файл
        ЗапросТекстовыйДокумент = Новый ЗаписьТекста(ИмяФайлаЗапроса, ПараметрыСервера.КодировкаЗапроса,, Истина, Символы.ПС);
        ЗапросТекстовыйДокумент.Записать(ЗапросJSON);
        ЗапросТекстовыйДокумент.Закрыть();        
        // Соединение с сервером
        Соединение.ОтправитьДляОбработки(ИмяФайлаЗапроса, ПараметрыСервера.АдресРесурса, ИмяФайлаРезультата, Заголовки);
        Соединение = Неопределено;
        // Чтение результата из файла
        ЗапросТекстовыйДокумент = Новый ТекстовыйДокумент;
        ЗапросТекстовыйДокумент.Прочитать(ИмяФайлаРезультата, ПараметрыСервера.КодировкаОтвета);
        Результат.РезультатЗапроса = ЗаполнитьСтруктуруИзОтветаJSON(ОбработкаСлужебныхСимволовОтветаJSON(ЗапросТекстовыйДокумент.ПолучитьТекст()));
        //Результат.РезультатЗапроса = JSONСервер.ЗаполнитьСтруктуруИзОтветаJSON(ЗапросТекстовыйДокумент.ПолучитьТекст());
    Исключение
        Результат.БылиОшибки = Истина;
        Результат.МассивСообщений.Добавить("Ошибка при отправке запроса: " + ИнформацияОбОшибке().Описание);
    КонецПопытки;
6 Чеширрр
 
07.08.16
13:06
Яя не врублю в параметры метода post.

У меня в доках указано: Тело запроса, разделы.
И я никак в сети не могу найти пример запроса с разделами,
как они формируются
То есть пишу part1= (тут вроде подаю то что надо подать на вход)
дальше к этому добавляю part2 = тут остальное)

Дело очевидно в том что я синтаксиса не знаю.
7 Юрий Лазаренко
 
07.08.16
17:09
(6) Какие такие разделы мазделы? Покажи документацию.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший