mirror of
https://github.com/alei1180/curlone.git
synced 2026-06-21 01:30:38 +02:00
@@ -11,7 +11,7 @@
|
||||
|
||||
Перем ПрочитанныеФайлы; // Массив из Структура
|
||||
// - ПередаваемыйФайл
|
||||
// - ИмяПеременной
|
||||
// - ИмяПеременной
|
||||
Перем ИспользуетсяЗащищенноеСоединение; // Булево
|
||||
|
||||
Процедура ПриСозданииОбъекта()
|
||||
|
||||
@@ -17,34 +17,12 @@
|
||||
Парсер = Новый ПарсерКонсольнойКоманды();
|
||||
АргументыКоманд = Парсер.Распарсить(КоманднаяСтрока);
|
||||
|
||||
Приложение = Новый КонсольноеПриложение("curl", "", ЭтотОбъект);
|
||||
|
||||
Приложение.Аргумент("URL", "", "Адрес ресурса").ТМассивСтрок();
|
||||
Приложение.Опция("url", "", "URL").ТМассивСтрок();
|
||||
Приложение.Опция("H header", "", "HTTP заголовок").ТМассивСтрок();
|
||||
Приложение.Опция("X request", "", "Метод запроса").ТСтрока();
|
||||
Приложение.Опция("u user", "", "Пользователь и пароль").ТСтрока();
|
||||
Приложение.Опция("d data data-ascii", "", "Передаваемые данные по HTTP POST").ТМассивСтрок();
|
||||
Приложение.Опция("data-raw", "", "Передаваемые данные по HTTP POST без интерпретации символа @").ТМассивСтрок();
|
||||
Приложение.Опция("data-binary", "", "Передаваемые двоичные данные по HTTP POST").ТМассивСтрок();
|
||||
Приложение.Опция("data-urlencode", "", "Передаваемые данные по HTTP POST с URL кодированием").ТМассивСтрок();
|
||||
Приложение.Опция("T upload-file", "", "Загружаемый файл").ТМассивСтрок();
|
||||
Приложение.Опция("G get", Ложь, "Данные из опций -d и--data-... добавляются в URL как строка запроса").Флаговый();
|
||||
Приложение.Опция("I head", Ложь, "Получение заголовков").Флаговый();
|
||||
Приложение.Опция("E cert", "", "Сертификат клиента").ТМассивСтрок();
|
||||
Приложение.Опция("ca-native", Ложь, "Использование сертификатов УЦ из системного хранилища сертификатов операционной системы").Флаговый();
|
||||
Приложение.Опция("cacert", "", "Файл сертификатов удостоверяющих центров").ТМассивСтрок();
|
||||
Приложение.Опция("url-query", "", "Параметры строки запроса URL").ТМассивСтрок();
|
||||
Приложение.Опция("o output", "", "Имя выходного файла").ТМассивСтрок();
|
||||
Приложение.Опция("output-dir", "", "Каталог сохранения файлов").ТМассивСтрок();
|
||||
|
||||
УстановитьСтрокуИспользованияКоманды(Приложение);
|
||||
Приложение.УстановитьОсновноеДействие(ЭтотОбъект);
|
||||
|
||||
Если АргументыКоманд.Количество() = 0 Тогда
|
||||
ВызватьИсключение "Команда должна начинаться с ""curl""";
|
||||
ВызватьИсключение "Передана пустая команда";
|
||||
КонецЕсли;
|
||||
|
||||
Приложение = СоздатьКонсольноеПриложение();
|
||||
|
||||
Результат = "";
|
||||
Для Каждого АргументыКоманды Из АргументыКоманд Цикл
|
||||
Если Не (НРег(АргументыКоманды[0]) = "curl") Тогда
|
||||
@@ -300,12 +278,7 @@
|
||||
|
||||
Процедура ПрочитатьСертификатКлиента(Команда)
|
||||
|
||||
СертификатКлиента = "";
|
||||
|
||||
МассивЗначений = Команда.ЗначениеОпции("E");
|
||||
Если МассивЗначений.Количество() Тогда
|
||||
СертификатКлиента = МассивЗначений[МассивЗначений.ВГраница()];
|
||||
КонецЕсли;
|
||||
СертификатКлиента = ПоследнееЗначениеОпции(Команда, "E");
|
||||
|
||||
Если Не ЗначениеЗаполнено(СертификатКлиента) Тогда
|
||||
Возврат;
|
||||
@@ -394,6 +367,36 @@
|
||||
КонецЕсли;
|
||||
КонецПроцедуры
|
||||
|
||||
Функция СоздатьКонсольноеПриложение()
|
||||
|
||||
Приложение = Новый КонсольноеПриложение("curl", "", ЭтотОбъект);
|
||||
|
||||
Приложение.Аргумент("URL", "", "Адрес ресурса").ТМассивСтрок();
|
||||
Приложение.Опция("url", "", "URL").ТМассивСтрок();
|
||||
Приложение.Опция("H header", "", "HTTP заголовок").ТМассивСтрок();
|
||||
Приложение.Опция("X request", "", "Метод запроса").ТСтрока();
|
||||
Приложение.Опция("u user", "", "Пользователь и пароль").ТСтрока();
|
||||
Приложение.Опция("d data data-ascii", "", "Передаваемые данные по HTTP POST").ТМассивСтрок();
|
||||
Приложение.Опция("data-raw", "", "Передаваемые данные по HTTP POST без интерпретации символа @").ТМассивСтрок();
|
||||
Приложение.Опция("data-binary", "", "Передаваемые двоичные данные по HTTP POST").ТМассивСтрок();
|
||||
Приложение.Опция("data-urlencode", "", "Передаваемые данные по HTTP POST с URL кодированием").ТМассивСтрок();
|
||||
Приложение.Опция("T upload-file", "", "Загружаемый файл").ТМассивСтрок();
|
||||
Приложение.Опция("G get", Ложь, "Данные из опций -d и--data-... добавляются в URL как строка запроса").Флаговый();
|
||||
Приложение.Опция("I head", Ложь, "Получение заголовков").Флаговый();
|
||||
Приложение.Опция("E cert", "", "Сертификат клиента").ТМассивСтрок();
|
||||
Приложение.Опция("ca-native", Ложь, "Использование сертификатов УЦ из системного хранилища сертификатов операционной системы").Флаговый();
|
||||
Приложение.Опция("cacert", "", "Файл сертификатов удостоверяющих центров").ТМассивСтрок();
|
||||
Приложение.Опция("url-query", "", "Параметры строки запроса URL").ТМассивСтрок();
|
||||
Приложение.Опция("o output", "", "Имя выходного файла").ТМассивСтрок();
|
||||
Приложение.Опция("output-dir", "", "Каталог сохранения файлов").ТМассивСтрок();
|
||||
|
||||
УстановитьСтрокуИспользованияКоманды(Приложение);
|
||||
Приложение.УстановитьОсновноеДействие(ЭтотОбъект);
|
||||
|
||||
Возврат Приложение;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ЕстьОпции(Команда, Опции)
|
||||
Для Каждого Опция Из СтрРазделить(Опции, ",") Цикл
|
||||
Если ЗначениеЗаполнено(Команда.ЗначениеОпции(Опция)) Тогда
|
||||
|
||||
@@ -44,6 +44,6 @@
|
||||
|
||||
Ожидаем.Что(КонвертерКомандыCURL)
|
||||
.Метод("Конвертировать", ПараметрыМетода)
|
||||
.ВыбрасываетИсключение("Команда должна начинаться с ""curl""");
|
||||
.ВыбрасываетИсключение("Передана пустая команда");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Reference in New Issue
Block a user