ОтправитьЗапросВМенеджерСервиса (БСП)

Автор: 1С
ОбщийМодуль.РаботаВМоделиСервисаБТС
БСП

Отправить запрос менеджер сервиса. Отправляет данные на указанный адрес в Менеджер сервиса.

// Отправляет данные на указанный адрес в Менеджер сервиса.
//
// Параметры:
//  Метод - Строка - имя HTTP-метода для запроса согласно стандарту RFC7230 (https://tools.ietf.org/html/rfc7230).
//  Адрес  - Строка - адрес, на который отправляются данные, например "hs/ext_api/execute".
//  Данные - Структура - данные, отправляемые в менеджер сервиса.
//  Таймаут - Строка - время ожидания ответа от менеджера сервиса.
//  КэшСоединения - Булево - использовать кэш соединения при отправке запросов.
// 
// Возвращаемое значение:
//  HTTPОтвет - ответ HTTP-сервиса Менеджера сервиса. 
//
Функция ОтправитьЗапросВМенеджерСервиса(Метод, Адрес, Знач Данные = Неопределено, КэшСоединения = Истина, Таймаут = 60) Экспорт
	
	УстановленПривилегированныйРежим = Ложь;
    Если Не ПривилегированныйРежим() Тогда
        УстановитьПривилегированныйРежим(Истина);
        УстановленПривилегированныйРежим = Истина;
    КонецЕсли; 
	
	ПолныйАдрес = СтрШаблон("%1/%2", РаботаВМоделиСервиса.ВнутреннийАдресМенеджераСервиса(), Адрес);
	
	Если УстановленПривилегированныйРежим Тогда
        УстановитьПривилегированныйРежим(Ложь);
    КонецЕсли; 
    
    ДанныеСервера = ОбщегоНазначенияКлиентСервер.СтруктураURI(ПолныйАдрес);
    
    Если КэшСоединения Тогда
	    Соединение = РаботаВМоделиСервисаБТСПовтИсп.СоединениеСМенеджеромСервиса(ДанныеСервера, Таймаут);
    Иначе
        Соединение = РаботаВМоделиСервисаБТС.СоединениеСМенеджеромСервиса(ДанныеСервера, Таймаут);
    КонецЕсли; 
    
    Запрос = Новый HTTPЗапрос(ДанныеСервера.ПутьНаСервере);
    Запрос.Заголовки.Вставить("Content-Type", "application/json; charset=utf-8");
    
    Если ТипЗнч(Данные) = Тип("Структура") Тогда
        Данные = СтрокаИзСтруктурыJSON(Данные);
        Запрос.УстановитьТелоИзСтроки(Данные);
    ИначеЕсли ТипЗнч(Данные) = Тип("ДвоичныеДанные") Тогда
        Запрос.УстановитьТелоИзДвоичныхДанных(Данные);
    ИначеЕсли ТипЗнч(Данные) = Тип("Строка") Тогда
        Запрос.УстановитьТелоИзСтроки(Данные);
    КонецЕсли; 
    
   	Возврат Соединение.ВызватьHTTPМетод(Метод, Запрос);
	
КонецФункции

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

Рекомендации

Похожие публикации

ОтправитьДанныеВМенеджерСервиса (БСП)

ОтправитьЗапросыНаИспользованиеВнешнихРесурсов (БСП)

ОтправитьЗапросыНаИспользованиеВнешнихРесурсовОбластиДанных (БСП)

ОтправитьДанныеОбъектаПоПравилу (БСП)

ШаблонЗапроса (БСП)

СериализоватьЗапросыНаИспользованиеВнешнихРесурсов (БСП)

ЗапроситьЛицензииУникальныхУслуг_ОбработчикОбновления (БСП)

ЗапроситьЛицензииУникальныхУслуг_РегламентноеЗадание (БСП)

ПолучитьСписокДоступныхРасширенийВФоне (БСП)

Синтакс-помощник БСП с нейросетевым ассистентом