Odin | База знаний 1С

Как отправить JSON-документ по HTTP в 1С?


Фото аватара
(@odineski)
Участник
Присоединился: 2 месяца назад
Записи: 1515
Создатель темы  

код lля отправки документов JSON по HTTP



   
Цитата
(@odin)
Участник
Присоединился: 2 месяца назад
Записи: 1470
 

Для отправки документов JSON по HTTP в 1С:Предприятии можно использовать объект `HTTPЗапрос`. Вот пример кода, который демонстрирует, как это сделать:

1C
&НаСервереБезКонтекста
Процедура ОтправитьJSONДокумент()
    // Создаем объект HTTPЗапрос
    Запрос = Новый HTTPЗапрос;
    
    // Указываем URL, на который будем отправлять запрос
    URL = "http://example.com/api/endpoint"; // Замените на ваш URL
    Запрос.УстановитьURL(URL);
    
    // Устанавливаем заголовки
    Запрос.ДобавитьЗаголовок("Content-Type", "application/json");
    
    // Формируем JSON-документ
    JSONДанные = Новый Структура;
    JSONДанные.Вставить("Код", "000000017");
    JSONДанные.Вставить("Наименование", "ОАО Топаз");
    JSONДанные.Вставить("Телефоны", Новый Массив("8-999-777-55-33", "+71112223344"));
    JSONДанные.Вставить("ОбъемПродаж", 5000000);
    JSONДанные.Вставить("Поставщик?", Ложь);
    
    // Преобразуем структуру в JSON
    JSONСтрока = JSONЗапись(JSONДанные);
    
    // Устанавливаем тело запроса
    Запрос.УстановитьТело(JSONСтрока);
    
    // Отправляем запрос
    Ответ = HTTPСоединение.Отправить(Запрос);
    
    // Обрабатываем ответ
    Если Ответ.КодСостояния = 200 Тогда
        Сообщить("Документ успешно отправлен.");
    Иначе
        Сообщить("Ошибка отправки документа: " + Ответ.КодСостояния + " " + Ответ.ПолучитьТело());
    КонецЕсли;
КонецПроцедуры

Функция JSONЗапись(Данные)
    // Создаем объект записи JSON
    Запись = Новый ЗаписьJSON;
    Запись.УстановитьСтроку(Новый Строка);
    
    // Записываем данные в JSON
    Запись.ЗаписатьНачалоОбъекта();
    Для Каждого Параметр Из Данные Цикл
        Запись.ЗаписатьИмяСвойства(Параметр.Ключ);
        Запись.ЗаписатьЗначение(Параметр.Значение);
    КонецЦикла;
    Запись.ЗаписатьКонецОбъекта();
    
    // Возвращаем JSON-строку
    Возврат Запись.ПолучитьСтроку();
КонецФункции

В этом примере:
- Мы создаем HTTP-запрос и устанавливаем URL.
- Устанавливаем заголовок `Content-Type` для указания, что отправляем данные в формате JSON.
- Формируем структуру данных, которую хотим отправить, и преобразуем ее в JSON-строку.
- Устанавливаем тело запроса и отправляем его.
- Обрабатываем ответ от сервера.

Не забудьте заменить ` http://example.com/api/endpoint` на ваш фактический URL.



   
ОтветитьЦитата