You've already forked OpenIntegrations
mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2025-11-23 22:05:15 +02:00
Доработка тестов TCP
This commit is contained in:
@@ -49,12 +49,13 @@
|
|||||||
// Создает TCP соединение
|
// Создает TCP соединение
|
||||||
//
|
//
|
||||||
// Параметры:
|
// Параметры:
|
||||||
// Адрес - Строка - Адрес и порт для подключения - address
|
// Адрес - Строка - Адрес и порт для подключения - address
|
||||||
// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
|
// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
|
||||||
|
// Прокси - Структура Из КлючИЗначение - Настройки прокси, если необходимо. См. ПолучитьНастройкиПрокси - proxy
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// Соответствие Из КлючИЗначение, Произвольный - Возвращает объект TCP клиента при успешном подключении или информацию об ошибке
|
// Соответствие Из КлючИЗначение, Произвольный - Возвращает объект TCP клиента при успешном подключении или информацию об ошибке
|
||||||
Функция ОткрытьСоединение(Знач Адрес, Знач Tls = "") Экспорт
|
Функция ОткрытьСоединение(Знач Адрес, Знач Tls = "", Знач Прокси = "") Экспорт
|
||||||
|
|
||||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Адрес);
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(Адрес);
|
||||||
OPI_Инструменты.ВернутьУправляющиеПоследовательности(Адрес);
|
OPI_Инструменты.ВернутьУправляющиеПоследовательности(Адрес);
|
||||||
@@ -72,6 +73,20 @@
|
|||||||
Если Не OPI_Инструменты.ПолучитьИли(Tls, "result", Ложь) Тогда
|
Если Не OPI_Инструменты.ПолучитьИли(Tls, "result", Ложь) Тогда
|
||||||
Возврат Tls;
|
Возврат Tls;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ЗначениеЗаполнено(Прокси) Тогда
|
||||||
|
|
||||||
|
OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(Прокси);
|
||||||
|
ПроксиСтрокой = OPI_Инструменты.JSONСтрокой(Прокси);
|
||||||
|
|
||||||
|
Установка = TCPКлиент.SetProxySettings(ПроксиСтрокой);
|
||||||
|
Установка = OPI_Инструменты.JsonВСтруктуру(Установка);
|
||||||
|
|
||||||
|
Если Не OPI_Инструменты.ПолучитьИли(Установка, "result", Ложь) Тогда
|
||||||
|
Возврат Установка;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Успех = TCPКлиент.Connect();
|
Успех = TCPКлиент.Connect();
|
||||||
|
|
||||||
@@ -87,7 +102,7 @@
|
|||||||
// Явно закрывает созданное ранее соединение
|
// Явно закрывает созданное ранее соединение
|
||||||
//
|
//
|
||||||
// Параметры:
|
// Параметры:
|
||||||
// Соединение - Произвольный - Соединение, см. ОткрытьСоединение - tcp
|
// Соединение - Произвольный - Соединение, См. ОткрытьСоединение - tcp
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// Булево - всегда возвращает Истина
|
// Булево - всегда возвращает Истина
|
||||||
@@ -106,7 +121,7 @@
|
|||||||
// При закрытии соединения, ошибке или обнаружении EOF чтение завершается в любом случае
|
// При закрытии соединения, ошибке или обнаружении EOF чтение завершается в любом случае
|
||||||
//
|
//
|
||||||
// Параметры:
|
// Параметры:
|
||||||
// Соединение - Произвольный - Соединение, см. ОткрытьСоединение - tcp
|
// Соединение - Произвольный - Соединение, См. ОткрытьСоединение - tcp
|
||||||
// МаксимальныйРазмер - Число - Максимальный размер данных (байт). 0 > без ограничений - size
|
// МаксимальныйРазмер - Число - Максимальный размер данных (байт). 0 > без ограничений - size
|
||||||
// Маркер - Строка, ДвоичныеДанные - Маркер конца сообщения. Пусто > без маркера - marker
|
// Маркер - Строка, ДвоичныеДанные - Маркер конца сообщения. Пусто > без маркера - marker
|
||||||
// Таймаут - Число - Таймаут ожидания данных (мс). 0 > без ограничений - timeout
|
// Таймаут - Число - Таймаут ожидания данных (мс). 0 > без ограничений - timeout
|
||||||
@@ -140,10 +155,10 @@
|
|||||||
// При закрытии соединения, ошибке или обнаружении EOF чтение завершается в любом случае
|
// При закрытии соединения, ошибке или обнаружении EOF чтение завершается в любом случае
|
||||||
//
|
//
|
||||||
// Параметры:
|
// Параметры:
|
||||||
// Соединение - Произвольный - Соединение, см. ОткрытьСоединение - tcp
|
// Соединение - Произвольный - Соединение, См. ОткрытьСоединение - tcp
|
||||||
// Кодировка - Строка - Кодировка преобразования данных в строку - enc
|
// Кодировка - Строка - Кодировка преобразования данных в строку - enc
|
||||||
// Маркер - Строка, ДвоичныеДанные - Маркер конца сообщения. Пусто > без маркера - marker
|
// Маркер - Строка, ДвоичныеДанные - Маркер конца сообщения. Пусто > без маркера - marker
|
||||||
// Таймаут - Число - Таймаут ожидания данных (мс). 0 > без ограничений - timeout
|
// Таймаут - Число - Таймаут ожидания данных (мс). 0 > без ограничений - timeout
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// Строка - Полученные данные в виде строки
|
// Строка - Полученные данные в виде строки
|
||||||
@@ -165,7 +180,7 @@
|
|||||||
// Отправляет двоичные данные через указанное соединение
|
// Отправляет двоичные данные через указанное соединение
|
||||||
//
|
//
|
||||||
// Параметры:
|
// Параметры:
|
||||||
// Соединение - Произвольный - Соединение, см. ОткрытьСоединение - tcp
|
// Соединение - Произвольный - Соединение, См. ОткрытьСоединение - tcp
|
||||||
// Данные - ДвоичныеДанные - Данные для отправки - data
|
// Данные - ДвоичныеДанные - Данные для отправки - data
|
||||||
// Таймаут - Число - Таймаут ожидания записи (мс). 0 > без ограничений - timeout
|
// Таймаут - Число - Таймаут ожидания записи (мс). 0 > без ограничений - timeout
|
||||||
//
|
//
|
||||||
@@ -186,7 +201,7 @@
|
|||||||
// Отправляет данные в виде строки через указанное соединение
|
// Отправляет данные в виде строки через указанное соединение
|
||||||
//
|
//
|
||||||
// Параметры:
|
// Параметры:
|
||||||
// Соединение - Произвольный - Соединение, см. ОткрытьСоединение - tcp
|
// Соединение - Произвольный - Соединение, См. ОткрытьСоединение - tcp
|
||||||
// Данные - Строка - Данные для отправки в виде строки - data
|
// Данные - Строка - Данные для отправки в виде строки - data
|
||||||
// Кодировка - Строка - Кодировка для записи исходящей строки в поток - enc
|
// Кодировка - Строка - Кодировка для записи исходящей строки в поток - enc
|
||||||
// Таймаут - Число - Таймаут ожидания записи (мс). 0 > без ограничений - timeout
|
// Таймаут - Число - Таймаут ожидания записи (мс). 0 > без ограничений - timeout
|
||||||
@@ -210,19 +225,24 @@
|
|||||||
// Отправляет одиночный запрос на указанный адрес и получает ответ, используя стандартные настройки
|
// Отправляет одиночный запрос на указанный адрес и получает ответ, используя стандартные настройки
|
||||||
//
|
//
|
||||||
// Параметры:
|
// Параметры:
|
||||||
// Адрес - Строка - Адрес и порт для подключения - address
|
// Адрес - Строка - Адрес и порт для подключения - address
|
||||||
// Данные - Строка, ДвоичныеДанные - Данные или текст для отправки - data
|
// Данные - Строка, ДвоичныеДанные - Данные или текст для отправки - data
|
||||||
// ОтветСтрокой - Булево - Признак получения ответа как строки - string
|
// ОтветСтрокой - Булево - Признак получения ответа как строки - string
|
||||||
// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
|
// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
|
||||||
|
// Прокси - Структура Из КлючИЗначение - Настройки прокси, если необходимо. См. ПолучитьНастройкиПрокси - proxy
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// ДвоичныеДанные, Строка - Ответ на запрос или информация об ошибке
|
// ДвоичныеДанные, Строка - Ответ на запрос или информация об ошибке
|
||||||
Функция ОбработатьЗапрос(Знач Адрес, Знач Данные = "", Знач ОтветСтрокой = Истина, Знач Tls = "") Экспорт
|
Функция ОбработатьЗапрос(Знач Адрес
|
||||||
|
, Знач Данные = ""
|
||||||
|
, Знач ОтветСтрокой = Истина
|
||||||
|
, Знач Tls = ""
|
||||||
|
, Знач Прокси = "") Экспорт
|
||||||
|
|
||||||
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Данные, Истина, Ложь);
|
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Данные, Истина, Ложь);
|
||||||
OPI_ПреобразованиеТипов.ПолучитьБулево(ОтветСтрокой);
|
OPI_ПреобразованиеТипов.ПолучитьБулево(ОтветСтрокой);
|
||||||
|
|
||||||
Соединение = ОткрытьСоединение(Адрес, Tls);
|
Соединение = ОткрытьСоединение(Адрес, Tls, Прокси);
|
||||||
|
|
||||||
Если Не OPI_Компоненты.ЭтоКомпонента(Соединение) Тогда
|
Если Не OPI_Компоненты.ЭтоКомпонента(Соединение) Тогда
|
||||||
Возврат Соединение;
|
Возврат Соединение;
|
||||||
@@ -266,7 +286,7 @@
|
|||||||
// Получает информацию о последней ошибке в соединении
|
// Получает информацию о последней ошибке в соединении
|
||||||
//
|
//
|
||||||
// Параметры:
|
// Параметры:
|
||||||
// Соединение - Произвольный - Соединение, см. ОткрытьСоединение - tcp
|
// Соединение - Произвольный - Соединение, См. ОткрытьСоединение - tcp
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// Соответствие Из КлючИЗначение, Неопределено - Информация об ошибке или неопределено, если ошибки нет
|
// Соответствие Из КлючИЗначение, Неопределено - Информация об ошибке или неопределено, если ошибки нет
|
||||||
@@ -284,6 +304,29 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
// Получить настройки прокси
|
||||||
|
// Формирует структуру настроек прокси-сервера для соединения
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// Адрес - Строка - Адрес прокси - addr
|
||||||
|
// Порт - Число - Порт прокси - port
|
||||||
|
// Вид - Строка - Вид прокси: socks5, socks4, http - type
|
||||||
|
// Логин - Строка, Неопределено - Логин авторизации, если необходимо - login
|
||||||
|
// Пароль - Строка, Неопределено - Пароль для авторизации, если необходимо - pass
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Структура Из КлючИЗначение - Структура настроек прокси
|
||||||
|
Функция ПолучитьНастройкиПрокси(Знач Адрес
|
||||||
|
, Знач Порт
|
||||||
|
, Знач Вид = "socks5"
|
||||||
|
, Знач Логин = Неопределено
|
||||||
|
, Знач Пароль = Неопределено) Экспорт
|
||||||
|
|
||||||
|
//@skip-check constructor-function-return-section
|
||||||
|
Возврат OPI_Компоненты.ПолучитьНастройкиПрокси(Адрес, Порт, Вид, Логин, Пароль);
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
// Получить настройки TLS
|
// Получить настройки TLS
|
||||||
// Формирует настройки для использования TLS при выполнении запросов
|
// Формирует настройки для использования TLS при выполнении запросов
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -7772,6 +7772,16 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
Функция Проверка_TCP_ПолучитьНастройкиПрокси(Знач Результат, Знач Вариант)
|
||||||
|
|
||||||
|
ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина);
|
||||||
|
|
||||||
|
Результат["password"] = "***";
|
||||||
|
|
||||||
|
Возврат Результат;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
Функция Проверка_SQLite_ОткрытьСоединение(Знач Результат, Знач Вариант)
|
Функция Проверка_SQLite_ОткрытьСоединение(Знач Результат, Знач Вариант)
|
||||||
|
|
||||||
Если Вариант = "Закрытие" Тогда
|
Если Вариант = "Закрытие" Тогда
|
||||||
|
|||||||
@@ -2246,6 +2246,10 @@
|
|||||||
ПараметрыТеста = Новый Структура;
|
ПараметрыТеста = Новый Структура;
|
||||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("TCP_Address" , ПараметрыТеста);
|
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("TCP_Address" , ПараметрыТеста);
|
||||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("TCP_AddressTLS", ПараметрыТеста);
|
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("TCP_AddressTLS", ПараметрыТеста);
|
||||||
|
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Proxy_User" , ПараметрыТеста);
|
||||||
|
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Proxy_Password", ПараметрыТеста);
|
||||||
|
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Socks5_IP" , ПараметрыТеста);
|
||||||
|
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Socks5_Port" , ПараметрыТеста);
|
||||||
|
|
||||||
TCP_ОткрытьСоединение(ПараметрыТеста);
|
TCP_ОткрытьСоединение(ПараметрыТеста);
|
||||||
TCP_ЗакрытьСоединение(ПараметрыТеста);
|
TCP_ЗакрытьСоединение(ПараметрыТеста);
|
||||||
@@ -2256,6 +2260,7 @@
|
|||||||
TCP_ОбработатьЗапрос(ПараметрыТеста);
|
TCP_ОбработатьЗапрос(ПараметрыТеста);
|
||||||
TCP_ПолучитьНастройкиTLS(ПараметрыТеста);
|
TCP_ПолучитьНастройкиTLS(ПараметрыТеста);
|
||||||
TCP_ПолучитьПоследнююОшибку(ПараметрыТеста);
|
TCP_ПолучитьПоследнююОшибку(ПараметрыТеста);
|
||||||
|
TCP_ПолучитьНастройкиПрокси(ПараметрыТеста);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
@@ -14822,7 +14827,18 @@
|
|||||||
|
|
||||||
Адрес = "tcpbin.com:4243";
|
Адрес = "tcpbin.com:4243";
|
||||||
Tls = OPI_TCP.ПолучитьНастройкиTLS(Истина);
|
Tls = OPI_TCP.ПолучитьНастройкиTLS(Истина);
|
||||||
Соединение = OPI_TCP.ОткрытьСоединение(Адрес, TLS);
|
|
||||||
|
ПроксиПользователь = ПараметрыФункции["Proxy_User"];
|
||||||
|
ПроксиПароль = ПараметрыФункции["Proxy_Password"];
|
||||||
|
ПроксиАдрес = ПараметрыФункции["Socks5_IP"];
|
||||||
|
ПроксиПорт = ПараметрыФункции["Socks5_Port"];
|
||||||
|
|
||||||
|
ПроксиАдрес = ?(ПроксиАдрес = "127.0.0.1", OPI_ПолучениеДанныхТестов.ПолучитьLocalhost(), ПроксиАдрес); // SKIP
|
||||||
|
|
||||||
|
Прокси = OPI_TCP.ПолучитьНастройкиПрокси(ПроксиАдрес, ПроксиПорт, "socks5", ПроксиПользователь, ПроксиПароль);
|
||||||
|
Tls = OPI_TCP.ПолучитьНастройкиTLS(Истина);
|
||||||
|
|
||||||
|
Соединение = OPI_TCP.ОткрытьСоединение(Адрес, TLS, Прокси);
|
||||||
|
|
||||||
// END
|
// END
|
||||||
|
|
||||||
@@ -14915,9 +14931,18 @@
|
|||||||
Обработать(Результат, "TCP", "ОбработатьЗапрос", , "Echo this!" + Символы.ПС); // SKIP
|
Обработать(Результат, "TCP", "ОбработатьЗапрос", , "Echo this!" + Символы.ПС); // SKIP
|
||||||
|
|
||||||
Адрес = ПараметрыФункции["TCP_AddressTLS"];
|
Адрес = ПараметрыФункции["TCP_AddressTLS"];
|
||||||
Tls = OPI_TCP.ПолучитьНастройкиTLS(Истина);
|
|
||||||
|
ПроксиПользователь = ПараметрыФункции["Proxy_User"];
|
||||||
|
ПроксиПароль = ПараметрыФункции["Proxy_Password"];
|
||||||
|
ПроксиАдрес = ПараметрыФункции["Socks5_IP"];
|
||||||
|
ПроксиПорт = ПараметрыФункции["Socks5_Port"];
|
||||||
|
|
||||||
Результат = OPI_TCP.ОбработатьЗапрос(Адрес, Данные, , Tls);
|
ПроксиАдрес = ?(ПроксиАдрес = "127.0.0.1", OPI_ПолучениеДанныхТестов.ПолучитьLocalhost(), ПроксиАдрес); // SKIP
|
||||||
|
|
||||||
|
Прокси = OPI_TCP.ПолучитьНастройкиПрокси(ПроксиАдрес, ПроксиПорт, "socks5", ПроксиПользователь, ПроксиПароль);
|
||||||
|
Tls = OPI_TCP.ПолучитьНастройкиTLS(Истина);
|
||||||
|
|
||||||
|
Результат = OPI_TCP.ОбработатьЗапрос(Адрес, Данные, , Tls, Прокси);
|
||||||
|
|
||||||
// END
|
// END
|
||||||
|
|
||||||
@@ -15010,6 +15035,23 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура TCP_ПолучитьНастройкиПрокси(ПараметрыФункции)
|
||||||
|
|
||||||
|
ТипПрокси = "socks5"; // http, socks5, socks4
|
||||||
|
|
||||||
|
АдресПрокси = ПараметрыФункции["Proxy_IP"];
|
||||||
|
ПортПрокси = ПараметрыФункции["Proxy_Port"];
|
||||||
|
ЛогинПрокси = ПараметрыФункции["Proxy_User"];
|
||||||
|
ПарольПрокси = ПараметрыФункции["Proxy_Password"];
|
||||||
|
|
||||||
|
Результат = OPI_TCP.ПолучитьНастройкиПрокси(АдресПрокси, ПортПрокси, ТипПрокси, ЛогинПрокси, ПарольПрокси);
|
||||||
|
|
||||||
|
// END
|
||||||
|
|
||||||
|
Обработать(Результат, "TCP", "ПолучитьНастройкиПрокси");
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
|
||||||
#Область SQLite
|
#Область SQLite
|
||||||
|
|||||||
Reference in New Issue
Block a user