You've already forked OpenIntegrations
mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2025-08-24 19:49:22 +02:00
Начало нового HTTP клиента
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
// OneScript: ./OInt/tools/Modules/internal/Modules/OPI_Инструменты.os
|
||||
// OneScript: ./OInt/tools/Modules/internal/Modules/OPI_Инструменты.os
|
||||
|
||||
// MIT License
|
||||
|
||||
@@ -49,7 +49,26 @@
|
||||
, Знач ДопЗаголовки = ""
|
||||
, Знач ФайлОтвета = Неопределено
|
||||
, Знач ПолныйОтвет = Ложь) Экспорт
|
||||
Возврат ВыполнитьЗапросБезТела(URL, "GET", Параметры, ДопЗаголовки, ФайлОтвета, ПолныйОтвет);
|
||||
|
||||
HttpКлиент = Обработки.OPI_HTTPКлиент.Создать()
|
||||
.Инициализировать(URL)
|
||||
.УстановитьПараметрыURL(Параметры)
|
||||
.УстановитьЗаголовки(ДопЗаголовки)
|
||||
.УстановитьФайлОтвета(ФайлОтвета)
|
||||
.ОбработатьЗапрос("GET");
|
||||
|
||||
Если ПолныйОтвет Тогда
|
||||
Результат = HttpКлиент.ВернутьОтвет();
|
||||
Иначе
|
||||
Результат = HttpКлиент.ВернутьОтветКакJSONКоллекцию();
|
||||
КонецЕсли;
|
||||
|
||||
Если HttpКлиент.Ошибка Тогда
|
||||
ВызватьИсключение HttpКлиент.ПолучитьЛог(Истина);
|
||||
Иначе
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция Head(Знач URL
|
||||
@@ -57,7 +76,26 @@
|
||||
, Знач ДопЗаголовки = ""
|
||||
, Знач ФайлОтвета = Неопределено
|
||||
, Знач ПолныйОтвет = Ложь) Экспорт
|
||||
Возврат ВыполнитьЗапросБезТела(URL, "HEAD", Параметры, ДопЗаголовки, ФайлОтвета, ПолныйОтвет);
|
||||
|
||||
HttpКлиент = Обработки.OPI_HTTPКлиент.Создать()
|
||||
.Инициализировать(URL)
|
||||
.УстановитьПараметрыURL(Параметры)
|
||||
.УстановитьЗаголовки(ДопЗаголовки)
|
||||
.УстановитьФайлОтвета(ФайлОтвета)
|
||||
.ОбработатьЗапрос("HEAD");
|
||||
|
||||
Если ПолныйОтвет Тогда
|
||||
Результат = HttpКлиент.ВернутьОтвет();
|
||||
Иначе
|
||||
Результат = HttpКлиент.ВернутьОтветКакJSONКоллекцию();
|
||||
КонецЕсли;
|
||||
|
||||
Если HttpКлиент.Ошибка Тогда
|
||||
ВызватьИсключение HttpКлиент.ПолучитьЛог(Истина);
|
||||
Иначе
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция Delete(Знач URL
|
||||
@@ -65,7 +103,26 @@
|
||||
, Знач ДопЗаголовки = ""
|
||||
, Знач ФайлОтвета = Неопределено
|
||||
, Знач ПолныйОтвет = Ложь) Экспорт
|
||||
Возврат ВыполнитьЗапросБезТела(URL, "DELETE", Параметры, ДопЗаголовки, ФайлОтвета, ПолныйОтвет);
|
||||
|
||||
HttpКлиент = Обработки.OPI_HTTPКлиент.Создать()
|
||||
.Инициализировать(URL)
|
||||
.УстановитьПараметрыURL(Параметры)
|
||||
.УстановитьЗаголовки(ДопЗаголовки)
|
||||
.УстановитьФайлОтвета(ФайлОтвета)
|
||||
.ОбработатьЗапрос("DELETE");
|
||||
|
||||
Если ПолныйОтвет Тогда
|
||||
Результат = HttpКлиент.ВернутьОтвет();
|
||||
Иначе
|
||||
Результат = HttpКлиент.ВернутьОтветКакJSONКоллекцию();
|
||||
КонецЕсли;
|
||||
|
||||
Если HttpКлиент.Ошибка Тогда
|
||||
ВызватьИсключение HttpКлиент.ПолучитьЛог(Истина);
|
||||
Иначе
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
@@ -79,7 +136,30 @@
|
||||
, Знач ПолныйОтвет = Ложь
|
||||
, Знач ФайлОтвета = Неопределено) Экспорт
|
||||
|
||||
Возврат ВыполнитьЗапросСТелом(URL, "POST", Параметры, ДопЗаголовки, JSON, ПолныйОтвет, ФайлОтвета);
|
||||
HttpКлиент = Обработки.OPI_HTTPКлиент.Создать()
|
||||
.Инициализировать(URL)
|
||||
.УстановитьЗаголовки(ДопЗаголовки)
|
||||
.УстановитьФайлОтвета(ФайлОтвета);
|
||||
|
||||
Если JSON Тогда
|
||||
HttpКлиент.УстановитьJsonТело(Параметры);
|
||||
Иначе
|
||||
HttpКлиент.УстановитьFormТело(Параметры);
|
||||
КонецЕсли;
|
||||
|
||||
HttpКлиент.ОбработатьЗапрос("POST");
|
||||
|
||||
Если ПолныйОтвет Тогда
|
||||
Результат = HttpКлиент.ВернутьОтвет();
|
||||
Иначе
|
||||
Результат = HttpКлиент.ВернутьОтветКакJSONКоллекцию();
|
||||
КонецЕсли;
|
||||
|
||||
Если HttpКлиент.Ошибка Тогда
|
||||
ВызватьИсключение HttpКлиент.ПолучитьЛог(Истина);
|
||||
Иначе
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -90,8 +170,30 @@
|
||||
, Знач ПолныйОтвет = Ложь
|
||||
, Знач ФайлОтвета = Неопределено) Экспорт
|
||||
|
||||
Возврат ВыполнитьЗапросСТелом(URL, "PATCH", Параметры, ДопЗаголовки, JSON, ПолныйОтвет, ФайлОтвета);
|
||||
HttpКлиент = Обработки.OPI_HTTPКлиент.Создать()
|
||||
.Инициализировать(URL)
|
||||
.УстановитьЗаголовки(ДопЗаголовки)
|
||||
.УстановитьФайлОтвета(ФайлОтвета);
|
||||
|
||||
Если JSON Тогда
|
||||
HttpКлиент.УстановитьJsonТело(Параметры);
|
||||
Иначе
|
||||
HttpКлиент.УстановитьFormТело(Параметры);
|
||||
КонецЕсли;
|
||||
|
||||
HttpКлиент.ОбработатьЗапрос("PATCH");
|
||||
|
||||
Если ПолныйОтвет Тогда
|
||||
Результат = HttpКлиент.ВернутьОтвет();
|
||||
Иначе
|
||||
Результат = HttpКлиент.ВернутьОтветКакJSONКоллекцию();
|
||||
КонецЕсли;
|
||||
|
||||
Если HttpКлиент.Ошибка Тогда
|
||||
ВызватьИсключение HttpКлиент.ПолучитьЛог(Истина);
|
||||
Иначе
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
КонецФункции
|
||||
|
||||
Функция Put(Знач URL
|
||||
@@ -101,8 +203,30 @@
|
||||
, Знач ПолныйОтвет = Ложь
|
||||
, Знач ФайлОтвета = Неопределено) Экспорт
|
||||
|
||||
Возврат ВыполнитьЗапросСТелом(URL, "PUT", Параметры, ДопЗаголовки, JSON, ПолныйОтвет, ФайлОтвета);
|
||||
HttpКлиент = Обработки.OPI_HTTPКлиент.Создать()
|
||||
.Инициализировать(URL)
|
||||
.УстановитьЗаголовки(ДопЗаголовки)
|
||||
.УстановитьФайлОтвета(ФайлОтвета);
|
||||
|
||||
Если JSON Тогда
|
||||
HttpКлиент.УстановитьJsonТело(Параметры);
|
||||
Иначе
|
||||
HttpКлиент.УстановитьFormТело(Параметры);
|
||||
КонецЕсли;
|
||||
|
||||
HttpКлиент.ОбработатьЗапрос("PUT");
|
||||
|
||||
Если ПолныйОтвет Тогда
|
||||
Результат = HttpКлиент.ВернутьОтвет();
|
||||
Иначе
|
||||
Результат = HttpКлиент.ВернутьОтветКакJSONКоллекцию();
|
||||
КонецЕсли;
|
||||
|
||||
Если HttpКлиент.Ошибка Тогда
|
||||
ВызватьИсключение HttpКлиент.ПолучитьЛог(Истина);
|
||||
Иначе
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
КонецФункции
|
||||
|
||||
Функция PostBinary(Знач URL
|
||||
@@ -122,8 +246,30 @@
|
||||
, Знач ПолныйОтвет = Ложь
|
||||
, Знач ФайлОтвета = Неопределено) Экспорт
|
||||
|
||||
Возврат ВыполнитьЗапросСТелом(URL, "DELETE", Параметры, ДопЗаголовки, JSON, ПолныйОтвет, ФайлОтвета);
|
||||
HttpКлиент = Обработки.OPI_HTTPКлиент.Создать()
|
||||
.Инициализировать(URL)
|
||||
.УстановитьЗаголовки(ДопЗаголовки)
|
||||
.УстановитьФайлОтвета(ФайлОтвета);
|
||||
|
||||
Если JSON Тогда
|
||||
HttpКлиент.УстановитьJsonТело(Параметры);
|
||||
Иначе
|
||||
HttpКлиент.УстановитьFormТело(Параметры);
|
||||
КонецЕсли;
|
||||
|
||||
HttpКлиент.ОбработатьЗапрос("DELETE");
|
||||
|
||||
Если ПолныйОтвет Тогда
|
||||
Результат = HttpКлиент.ВернутьОтвет();
|
||||
Иначе
|
||||
Результат = HttpКлиент.ВернутьОтветКакJSONКоллекцию();
|
||||
КонецЕсли;
|
||||
|
||||
Если HttpКлиент.Ошибка Тогда
|
||||
ВызватьИсключение HttpКлиент.ПолучитьЛог(Истина);
|
||||
Иначе
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
@@ -137,7 +283,36 @@
|
||||
, Знач ДопЗаголовки = ""
|
||||
, Знач ФайлОтвета = Неопределено) Экспорт
|
||||
|
||||
Возврат ВыполнитьЗапросМультипарт(URL, "POST", Параметры, Файлы, ТипКонтента, ДопЗаголовки, ФайлОтвета);
|
||||
HttpКлиент = Обработки.OPI_HTTPКлиент.Создать()
|
||||
.Инициализировать(URL)
|
||||
.УстановитьЗаголовки(ДопЗаголовки)
|
||||
.УстановитьФайлОтвета(ФайлОтвета)
|
||||
.НачатьЗаписьТелаMultipart();
|
||||
|
||||
Для Каждого Файл Из Файлы Цикл
|
||||
|
||||
СтруктураИнформации = РазобратьКлючФайла(Файл.Ключ, ТипКонтента);
|
||||
|
||||
ИмяПоля = СтруктураИнформации["ИмяПоля"];
|
||||
ИмяФайла = СтруктураИнформации["ИмяФайла"];
|
||||
|
||||
HttpКлиент.ДобавитьФайлMultipart(ИмяПоля, ИмяФайла, Файл.Значение, ТипКонтента);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Для Каждого Параметр Из Параметры Цикл
|
||||
HttpКлиент.ДобавитьПолеMultipart(Параметр.Ключ, Параметр.Значение);
|
||||
КонецЦикла;
|
||||
|
||||
HttpКлиент.ОбработатьЗапрос("POST");
|
||||
|
||||
Результат = HttpКлиент.ВернутьОтветКакJSONКоллекцию();
|
||||
|
||||
Если HttpКлиент.Ошибка Тогда
|
||||
ВызватьИсключение HttpКлиент.ПолучитьЛог(Истина);
|
||||
Иначе
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
@@ -81,4 +81,5 @@
|
||||
<commonModules>CommonModule.OPI_ПреобразованиеТипов</commonModules>
|
||||
<commonModules>CommonModule.OPI_Тесты</commonModules>
|
||||
<commonModules>CommonModule.OPI_ТестыCLI</commonModules>
|
||||
<dataProcessors>DataProcessor.OPI_HTTPКлиент</dataProcessors>
|
||||
</mdclass:Configuration>
|
||||
|
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:DataProcessor xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="d28e1c58-e694-490d-9b8a-cf3d8418a465">
|
||||
<producedTypes>
|
||||
<objectType typeId="f8380b17-fc17-434c-af09-1e256a999b26" valueTypeId="1903aff0-3cae-41d2-9206-534e13cff1a3"/>
|
||||
<managerType typeId="31cebf42-d435-40a7-b175-9a487c66b259" valueTypeId="0ade2c3a-405c-4423-8b00-3bd7a2f95c2a"/>
|
||||
</producedTypes>
|
||||
<name>OPI_HTTPКлиент</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>HTTP клиент (ОПИ)</value>
|
||||
</synonym>
|
||||
<useStandardCommands>true</useStandardCommands>
|
||||
</mdclass:DataProcessor>
|
1536
src/ru/OPI/src/DataProcessors/OPI_HTTPКлиент/ObjectModule.bsl
Normal file
1536
src/ru/OPI/src/DataProcessors/OPI_HTTPКлиент/ObjectModule.bsl
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user