mirror of
https://github.com/alei1180/curlone.git
synced 2025-11-27 23:18:23 +02:00
feat: Инициализация общих параметров только один раз для всех URL
This commit is contained in:
@@ -9,12 +9,14 @@
|
||||
Перем ИмяПараметраHTTPЗапрос;
|
||||
Перем ИмяПараметраHTTPОтвет;
|
||||
Перем ИмяПараметраПрокси;
|
||||
Перем ИмяПараметраТелоЗапросаСтрока;
|
||||
|
||||
Перем ПрочитанныеФайлы; // Массив из Структура
|
||||
// - ПередаваемыйФайл
|
||||
// - ИмяПеременной
|
||||
Перем ИспользуетсяЗащищенноеСоединение; // Булево
|
||||
Перем ИспользуетсяПрокси; // Булево
|
||||
Перем ТелоЗапросаСтрока; // Строка
|
||||
Перем ЕстьТекстовоеТелоЗапроса; // Булево
|
||||
|
||||
Процедура ПриСозданииОбъекта()
|
||||
|
||||
@@ -24,9 +26,11 @@
|
||||
ИмяПараметраHTTPЗапрос = "HTTPЗапрос";
|
||||
ИмяПараметраHTTPОтвет = "HTTPОтвет";
|
||||
ИмяПараметраПрокси = "Прокси";
|
||||
ИмяПараметраТелоЗапросаСтрока = "ТелоЗапроса";
|
||||
|
||||
ПрочитанныеФайлы = Новый Массив;
|
||||
ИспользуетсяЗащищенноеСоединение = Ложь;
|
||||
ЕстьТекстовоеТелоЗапроса = Ложь;
|
||||
ТелоЗапросаСтрока = "";
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -36,15 +40,17 @@
|
||||
|
||||
Результат = "";
|
||||
|
||||
ВывестиЗаголовки();
|
||||
ВывестиЧтениеФайлов();
|
||||
ВывестиИнициализациюТекстовогоТелаЗапроса();
|
||||
ВывестиЗащищенноеСоединение();
|
||||
ВывестиИнициализациюПрокси();
|
||||
|
||||
Для Каждого ОписаниеРесурса Из ОписаниеЗапроса.АдресаРесурсов Цикл
|
||||
|
||||
СтруктураURL = Новый ПарсерURL(ОписаниеРесурса.URL);
|
||||
|
||||
ВывестиЗаголовки();
|
||||
ВывестиЗащищенноеСоединение(СтруктураURL);
|
||||
ВывестиПрокси();
|
||||
ВывестиHTTPСоединение(СтруктураURL);
|
||||
ВывестиЧтениеФайлов();
|
||||
ВывестиHTTPЗапрос(СтруктураURL);
|
||||
ВывестиУстановкуТелаЗапросаТекстовымиДанными();
|
||||
ВывестиУстановкуТелаЗапросаДвоичнымиДанными();
|
||||
@@ -71,10 +77,17 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ВывестиЗащищенноеСоединение(СтруктураURL)
|
||||
Процедура ВывестиЗащищенноеСоединение()
|
||||
|
||||
ИспользуетсяЗащищенноеСоединение = Ложь;
|
||||
|
||||
ИспользуетсяЗащищенноеСоединение = СтруктураURL.Схема = "https"
|
||||
Или ЗначениеЗаполнено(ОписаниеЗапроса.ИмяФайлаСертификатаКлиента);
|
||||
Для Каждого ОписаниеРесурса Из ОписаниеЗапроса.АдресаРесурсов Цикл
|
||||
СтруктураURL = Новый ПарсерURL(ОписаниеРесурса.URL);
|
||||
ИспользуетсяЗащищенноеСоединение = ИспользуетсяЗащищенноеСоединение(СтруктураURL);
|
||||
Если ИспользуетсяЗащищенноеСоединение Тогда
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Если Не ИспользуетсяЗащищенноеСоединение Тогда
|
||||
Возврат;
|
||||
@@ -119,9 +132,9 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ВывестиПрокси()
|
||||
Процедура ВывестиИнициализациюПрокси()
|
||||
|
||||
ИспользуетсяПрокси = ЗначениеЗаполнено(ОписаниеЗапроса.ПроксиСервер) ;
|
||||
ИспользуетсяПрокси = ЗначениеЗаполнено(ОписаниеЗапроса.ПроксиСервер);
|
||||
|
||||
Если Не ИспользуетсяПрокси Тогда
|
||||
Возврат;
|
||||
@@ -156,6 +169,8 @@
|
||||
Таймаут = ОписаниеЗапроса.Таймаут + ОписаниеЗапроса.ТаймаутСоединения;
|
||||
КонецЕсли;
|
||||
|
||||
ИспользуетсяЗащищенноеСоединение = ИспользуетсяЗащищенноеСоединение(СтруктураURL);
|
||||
|
||||
ПараметрыФункции = Новый Массив;
|
||||
ПараметрыФункции.Добавить(ОбернутьКавычками(СтруктураURL.Сервер));
|
||||
ПараметрыФункции.Добавить(ПолучитьПорт(СтруктураURL));
|
||||
@@ -254,7 +269,6 @@
|
||||
ПараметрыФункции.Добавить(ИмяПараметраЗаголовки);
|
||||
КонецЕсли;
|
||||
|
||||
ВывестиПустуюСтроку();
|
||||
ВывестиСтроку(СтрШаблон(ИмяПараметраHTTPЗапрос + " = Новый HTTPЗапрос(%1);", ПараметрыФункцииВСтроку(ПараметрыФункции)));
|
||||
|
||||
КонецПроцедуры
|
||||
@@ -325,7 +339,7 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ВывестиУстановкуТелаЗапросаТекстовымиДанными()
|
||||
Процедура ВывестиИнициализациюТекстовогоТелаЗапроса()
|
||||
|
||||
Если ОписаниеЗапроса.ПередаватьОтправляемыеДанныеВСтрокуЗапроса Тогда
|
||||
Возврат;
|
||||
@@ -367,17 +381,31 @@
|
||||
КонецЦикла;
|
||||
|
||||
КоличествоЭлементов = ЭлементыТелаЗапросаДляВывода.Количество();
|
||||
Если КоличествоЭлементов = 1 Тогда
|
||||
ВывестиСтроку(СтрШаблон("%1.УстановитьТелоИзСтроки(%2);",
|
||||
ИмяПараметраHTTPЗапрос,
|
||||
ЭлементыТелаЗапросаДляВывода[0]));
|
||||
ИначеЕсли КоличествоЭлементов > 1 Тогда
|
||||
ВывестиПустуюСтроку();
|
||||
ВывестиСтроку(СтрШаблон("ТелоЗапроса = %1;", СтрСоединить(ЭлементыТелаЗапросаДляВывода)));
|
||||
ВывестиПустуюСтроку();
|
||||
ВывестиСтроку(СтрШаблон("%1.УстановитьТелоИзСтроки(ТелоЗапроса);", ИмяПараметраHTTPЗапрос));
|
||||
Если КоличествоЭлементов = 0 Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ЕстьТекстовоеТелоЗапроса = Истина;
|
||||
|
||||
Если КоличествоЭлементов = 1 Тогда
|
||||
ТелоЗапросаСтрока = ЭлементыТелаЗапросаДляВывода[0];
|
||||
Иначе
|
||||
ВывестиПустуюСтроку();
|
||||
ВывестиСтроку(СтрШаблон("%1 = %2;", ИмяПараметраТелоЗапросаСтрока, СтрСоединить(ЭлементыТелаЗапросаДляВывода)));
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ВывестиУстановкуТелаЗапросаТекстовымиДанными()
|
||||
|
||||
Если Не ЕстьТекстовоеТелоЗапроса Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ВывестиСтроку(СтрШаблон("%1.УстановитьТелоИзСтроки(%2);",
|
||||
ИмяПараметраHTTPЗапрос,
|
||||
?(ЗначениеЗаполнено(ТелоЗапросаСтрока), ТелоЗапросаСтрока, ИмяПараметраТелоЗапросаСтрока)));
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ВывестиУстановкуТелаЗапросаДвоичнымиДанными()
|
||||
@@ -412,6 +440,7 @@
|
||||
ПараметрыФункции.Добавить(ИмяПараметраHTTPЗапрос);
|
||||
ПараметрыФункции.Добавить(ОбернутьКавычками(ИмяВыходногоФайла, Истина));
|
||||
|
||||
ВывестиПустуюСтроку();
|
||||
ВывестиСтроку(СтрШаблон("%1 = %2.ВызватьHTTPМетод(%3);",
|
||||
ИмяПараметраHTTPОтвет,
|
||||
ИмяПараметраHTTPСоединение,
|
||||
@@ -435,6 +464,10 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ИспользуетсяЗащищенноеСоединение(СтруктураURL)
|
||||
Возврат СтруктураURL.Схема = "https" Или ЗначениеЗаполнено(ОписаниеЗапроса.ИмяФайлаСертификатаКлиента);
|
||||
КонецФункции
|
||||
|
||||
Процедура ВывестиСтроку(Строка)
|
||||
Результат = Результат + Символы.ПС + Строка;
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -10,9 +10,11 @@
|
||||
СписокТестов = Новый Массив;
|
||||
|
||||
СписокТестов.Добавить("ТестДолжен_ПроверитьЗаголовки");
|
||||
СписокТестов.Добавить("ТестДолжен_ПроверитьИнициализациюЗаголовковТолькоОдинРаз");
|
||||
СписокТестов.Добавить("ТестДолжен_ПроверитьПередачуМетода");
|
||||
СписокТестов.Добавить("ТестДолжен_ПроверитьПередачуПользователя");
|
||||
СписокТестов.Добавить("ТестДолжен_ПроверитьПередачуТекстовыхДанных");
|
||||
СписокТестов.Добавить("ТестДолжен_ПроверитьИнициализациюТелаЗапросаТолькоОдинРаз");
|
||||
СписокТестов.Добавить("ТестДолжен_ПроверитьПередачуТекстовыхДанныхСКодированием");
|
||||
СписокТестов.Добавить("ТестДолжен_ПроверитьПередачуДвоичныхДанныхDataBinary");
|
||||
СписокТестов.Добавить("ТестДолжен_ПроверитьПередачуДвоичныхДанныхUploadFile");
|
||||
@@ -25,6 +27,8 @@
|
||||
СписокТестов.Добавить("ТестДолжен_ПроверитьОбработкуНесколькихКоманд");
|
||||
СписокТестов.Добавить("ТестДолжен_ПроверитьОтсутствиеИспользованияЗащищенногоСоединения");
|
||||
СписокТестов.Добавить("ТестДолжен_ПроверитьНаличиеИспользованияЗащищенногоСоединения");
|
||||
СписокТестов.Добавить("ТестДолжен_ПроверитьИнициализациюЗащищенногоСоединенияТолькоОдинРаз");
|
||||
СписокТестов.Добавить("ТестДолжен_ПроверитьИспользованиеЗащищенногоСоединенияПриНаличииHTTPSиHTTP");
|
||||
СписокТестов.Добавить("ТестДолжен_ПроверитьИспользованиеСертификатаКлиентаСПаролем");
|
||||
СписокТестов.Добавить("ТестДолжен_ПроверитьИспользованиеСертификатаКлиентаБезПароля");
|
||||
СписокТестов.Добавить("ТестДолжен_ПроверитьИспользованиеСертификатаКлиентаИСертификатыУЦИзОС");
|
||||
@@ -39,6 +43,7 @@
|
||||
СписокТестов.Добавить("ТестДолжен_ПроверитьКаталогСохраненияФайловИПереданноеИмяФайла");
|
||||
СписокТестов.Добавить("ТестДолжен_ПроверитьКаталогСохраненияФайловИИзвлеченноеИмяФайлаИзURL");
|
||||
СписокТестов.Добавить("ТестДолжен_ПроверитьПрокси");
|
||||
СписокТестов.Добавить("ТестДолжен_ПроверитьИнициализациюПроксиТолькоОдинРаз");
|
||||
СписокТестов.Добавить("ТестДолжен_ПроверитьАутентификациюПроксиBasic");
|
||||
СписокТестов.Добавить("ТестДолжен_ПроверитьАутентификациюПроксиNTLM");
|
||||
СписокТестов.Добавить("ТестДолжен_ПроверитьВыбрасываниеИсключенияКогдаПроксиПротоколНеПоддерживается");
|
||||
@@ -59,7 +64,7 @@
|
||||
|
||||
Процедура ТестДолжен_ПроверитьЗаголовки() Экспорт
|
||||
|
||||
КонсольнаяКоманда = "curl 'https://example.com' \
|
||||
КонсольнаяКоманда = "curl http://example.com \
|
||||
| -H 'accept: text/html' \
|
||||
| -H 'accept-language: ru,en-US;q=0.9,en;q=0.8' \
|
||||
| -H 'user-agent: curl'";
|
||||
@@ -69,11 +74,34 @@
|
||||
|Заголовки.Вставить(""accept-language"", ""ru,en-US;q=0.9,en;q=0.8"");
|
||||
|Заголовки.Вставить(""user-agent"", ""curl"");
|
||||
|
|
||||
|ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 443, , , , , ЗащищенноеСоединение);
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 80);
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"", Заголовки);
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);";
|
||||
|
||||
КонвертерКомандыCURL = Новый КонвертерКомандыCURL();
|
||||
Результат = КонвертерКомандыCURL.Конвертировать(КонсольнаяКоманда, Новый ГенераторПрограммногоКода1С());
|
||||
|
||||
Ожидаем.Что(Результат).Равно(ПрограммныйКод);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ТестДолжен_ПроверитьИнициализациюЗаголовковТолькоОдинРаз() Экспорт
|
||||
|
||||
КонсольнаяКоманда = "curl example1.com/page1 example2.com/page2 \
|
||||
| -H 'accept: text/html";
|
||||
|
||||
ПрограммныйКод = "Заголовки = Новый Соответствие();
|
||||
|Заголовки.Вставить(""accept"", ""text/html"");
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example1.com"", 80);
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/page1"", Заголовки);
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example2.com"", 80);
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/page2"", Заголовки);
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);";
|
||||
|
||||
КонвертерКомандыCURL = Новый КонвертерКомандыCURL();
|
||||
@@ -85,13 +113,11 @@
|
||||
|
||||
Процедура ТестДолжен_ПроверитьПередачуМетода() Экспорт
|
||||
|
||||
КонсольнаяКоманда = "curl 'https://example.com' -X 'POST'";
|
||||
КонсольнаяКоманда = "curl http://example.com -X POST";
|
||||
|
||||
ПрограммныйКод = "ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 443, , , , , ЗащищенноеСоединение);
|
||||
|
|
||||
ПрограммныйКод = "Соединение = Новый HTTPСоединение(""example.com"", 80);
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"");
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);";
|
||||
|
||||
КонвертерКомандыCURL = Новый КонвертерКомандыCURL();
|
||||
@@ -103,13 +129,11 @@
|
||||
|
||||
Процедура ТестДолжен_ПроверитьПередачуПользователя() Экспорт
|
||||
|
||||
КонсольнаяКоманда = "curl 'https://example.com' -u user:secret";
|
||||
КонсольнаяКоманда = "curl http://example.com -u user:secret";
|
||||
|
||||
ПрограммныйКод = "ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 443, ""user"", ""secret"", , , ЗащищенноеСоединение);
|
||||
|
|
||||
ПрограммныйКод = "Соединение = Новый HTTPСоединение(""example.com"", 80, ""user"", ""secret"");
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"");
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);";
|
||||
|
||||
КонвертерКомандыCURL = Новый КонвертерКомандыCURL();
|
||||
@@ -121,7 +145,7 @@
|
||||
|
||||
Процедура ТестДолжен_ПроверитьПередачуТекстовыхДанных() Экспорт
|
||||
|
||||
КонсольнаяКоманда = "curl 'https://example.com' \
|
||||
КонсольнаяКоманда = "curl http://example.com \
|
||||
| -d param1=value1 \
|
||||
| --data-ascii 'парам2=значение2' \
|
||||
| --data 'param3=value3' \
|
||||
@@ -132,10 +156,6 @@
|
||||
ПрограммныйКод = "Заголовки = Новый Соответствие();
|
||||
|Заголовки.Вставить(""Content-Type"", ""application/x-www-form-urlencoded"");
|
||||
|
|
||||
|ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 443, , , , , ЗащищенноеСоединение);
|
||||
|
|
||||
|ТекстовыйДокумент = Новый ТекстовыйДокумент();
|
||||
|ТекстовыйДокумент.Прочитать(""path-to-file1"");
|
||||
|ТекстовыеДанныеИзФайла_1 = ТекстовыйДокумент.ПолучитьТекст();
|
||||
@@ -148,13 +168,51 @@
|
||||
|ТекстовыеДанныеИзФайла_2 = СтрЗаменить(ТекстовыеДанныеИзФайла_2, Символы.ПС, """");
|
||||
|ТекстовыеДанныеИзФайла_2 = СтрЗаменить(ТекстовыеДанныеИзФайла_2, Символы.ВК, """");
|
||||
|
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"", Заголовки);
|
||||
|
|
||||
|ТелоЗапроса = ""param1=value1&парам2=значение2¶m3=value3&@at@at@""
|
||||
| + ""&"" + ТекстовыеДанныеИзФайла_1
|
||||
| + ""&"" + ТекстовыеДанныеИзФайла_2;
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 80);
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"", Заголовки);
|
||||
|HTTPЗапрос.УстановитьТелоИзСтроки(ТелоЗапроса);
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);";
|
||||
|
||||
КонвертерКомандыCURL = Новый КонвертерКомандыCURL();
|
||||
Результат = КонвертерКомандыCURL.Конвертировать(КонсольнаяКоманда, Новый ГенераторПрограммногоКода1С());
|
||||
|
||||
Ожидаем.Что(Результат).Равно(ПрограммныйКод);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ТестДолжен_ПроверитьИнициализациюТелаЗапросаТолькоОдинРаз() Экспорт
|
||||
|
||||
КонсольнаяКоманда = "curl http://example1.com http://example2.com \
|
||||
| -d param=value \
|
||||
| --data @path-to-file";
|
||||
|
||||
ПрограммныйКод = "Заголовки = Новый Соответствие();
|
||||
|Заголовки.Вставить(""Content-Type"", ""application/x-www-form-urlencoded"");
|
||||
|
|
||||
|ТекстовыйДокумент = Новый ТекстовыйДокумент();
|
||||
|ТекстовыйДокумент.Прочитать(""path-to-file"");
|
||||
|ТекстовыеДанныеИзФайла_1 = ТекстовыйДокумент.ПолучитьТекст();
|
||||
|ТекстовыеДанныеИзФайла_1 = СтрЗаменить(ТекстовыеДанныеИзФайла_1, Символы.ПС, """");
|
||||
|ТекстовыеДанныеИзФайла_1 = СтрЗаменить(ТекстовыеДанныеИзФайла_1, Символы.ВК, """");
|
||||
|
|
||||
|ТелоЗапроса = ""param=value""
|
||||
| + ""&"" + ТекстовыеДанныеИзФайла_1;
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example1.com"", 80);
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"", Заголовки);
|
||||
|HTTPЗапрос.УстановитьТелоИзСтроки(ТелоЗапроса);
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example2.com"", 80);
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"", Заголовки);
|
||||
|HTTPЗапрос.УстановитьТелоИзСтроки(ТелоЗапроса);
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);";
|
||||
|
||||
КонвертерКомандыCURL = Новый КонвертерКомандыCURL();
|
||||
@@ -166,20 +224,18 @@
|
||||
|
||||
Процедура ТестДолжен_ПроверитьПередачуДвоичныхДанныхDataBinary() Экспорт
|
||||
|
||||
КонсольнаяКоманда = "curl 'https://example.com' \
|
||||
КонсольнаяКоманда = "curl http://example.com \
|
||||
| --data-binary @path-to-file1 \
|
||||
| --data-binary @path-to-file2";
|
||||
|
||||
ПрограммныйКод = "Заголовки = Новый Соответствие();
|
||||
|Заголовки.Вставить(""Content-Type"", ""application/x-www-form-urlencoded"");
|
||||
|
|
||||
|ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 443, , , , , ЗащищенноеСоединение);
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 80);
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"", Заголовки);
|
||||
|HTTPЗапрос.УстановитьИмяФайлаТела(""path-to-file1"");
|
||||
|// HTTPЗапрос.УстановитьИмяФайлаТела(""path-to-file2"");
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);";
|
||||
|
||||
КонвертерКомандыCURL = Новый КонвертерКомандыCURL();
|
||||
@@ -191,14 +247,12 @@
|
||||
|
||||
Процедура ТестДолжен_ПроверитьПередачуДвоичныхДанныхUploadFile() Экспорт
|
||||
|
||||
КонсольнаяКоманда = "curl 'https://example.com' --upload-file path-to-file";
|
||||
КонсольнаяКоманда = "curl http://example.com --upload-file path-to-file";
|
||||
|
||||
ПрограммныйКод = "ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 443, , , , , ЗащищенноеСоединение);
|
||||
|
|
||||
ПрограммныйКод = "Соединение = Новый HTTPСоединение(""example.com"", 80);
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"");
|
||||
|HTTPЗапрос.УстановитьИмяФайлаТела(""path-to-file"");
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""PUT"", HTTPЗапрос);";
|
||||
|
||||
КонвертерКомандыCURL = Новый КонвертерКомандыCURL();
|
||||
@@ -210,19 +264,17 @@
|
||||
|
||||
Процедура ТестДолжен_ПроверитьНеизменностьПереданногоЗаголовкаContentType() Экспорт
|
||||
|
||||
КонсольнаяКоманда = "curl 'https://example.com' \
|
||||
КонсольнаяКоманда = "curl http://example.com \
|
||||
| -H 'Content-Type: application/octet-stream' \
|
||||
| --data-binary @path-to-file";
|
||||
|
||||
ПрограммныйКод = "Заголовки = Новый Соответствие();
|
||||
|Заголовки.Вставить(""Content-Type"", ""application/octet-stream"");
|
||||
|
|
||||
|ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 443, , , , , ЗащищенноеСоединение);
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 80);
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"", Заголовки);
|
||||
|HTTPЗапрос.УстановитьИмяФайлаТела(""path-to-file"");
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);";
|
||||
|
||||
КонвертерКомандыCURL = Новый КонвертерКомандыCURL();
|
||||
@@ -243,8 +295,6 @@
|
||||
ПрограммныйКод = "Заголовки = Новый Соответствие();
|
||||
|Заголовки.Вставить(""Content-Type"", ""application/x-www-form-urlencoded"");
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 80);
|
||||
|
|
||||
|ТекстовыйДокумент = Новый ТекстовыйДокумент();
|
||||
|ТекстовыйДокумент.Прочитать(""file"");
|
||||
|ТекстовыеДанныеИзФайла_1 = ТекстовыйДокумент.ПолучитьТекст();
|
||||
@@ -256,13 +306,14 @@
|
||||
|ТекстовыеДанныеИзФайла_2 = ТекстовыйДокумент.ПолучитьТекст();
|
||||
|ТекстовыеДанныеИзФайла_2 = КодироватьСтроку(ТекстовыеДанныеИзФайла_2, СпособКодированияСтроки.URLВКодировкеURL);
|
||||
|
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"", Заголовки);
|
||||
|
|
||||
|ТелоЗапроса = ""name=val&encodethis%26""
|
||||
| + ""&"" + ТекстовыеДанныеИзФайла_1
|
||||
| + ""&"" + ТекстовыеДанныеИзФайла_2;
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 80);
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"", Заголовки);
|
||||
|HTTPЗапрос.УстановитьТелоИзСтроки(ТелоЗапроса);
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);";
|
||||
|
||||
КонвертерКомандыCURL = Новый КонвертерКомандыCURL();
|
||||
@@ -274,37 +325,29 @@
|
||||
|
||||
Процедура ТестДолжен_ПроверитьМножественноеИспользованиеUrl() Экспорт
|
||||
|
||||
КонсольнаяКоманда = "curl https://example1.com \
|
||||
| https://example2.com \
|
||||
| --url https://example3.com \
|
||||
| --url https://example4.com";
|
||||
КонсольнаяКоманда = "curl http://example1.com \
|
||||
| http://example2.com \
|
||||
| --url http://example3.com \
|
||||
| --url http://example4.com";
|
||||
|
||||
ПрограммныйКод = "ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example1.com"", 443, , , , , ЗащищенноеСоединение);
|
||||
|
|
||||
ПрограммныйКод = "Соединение = Новый HTTPСоединение(""example1.com"", 80);
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"");
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);
|
||||
|
|
||||
|ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example2.com"", 443, , , , , ЗащищенноеСоединение);
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example2.com"", 80);
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"");
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);
|
||||
|
|
||||
|ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example3.com"", 443, , , , , ЗащищенноеСоединение);
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example3.com"", 80);
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"");
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);
|
||||
|
|
||||
|ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example4.com"", 443, , , , , ЗащищенноеСоединение);
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example4.com"", 80);
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"");
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);";
|
||||
|
||||
КонвертерКомандыCURL = Новый КонвертерКомандыCURL();
|
||||
@@ -316,26 +359,24 @@
|
||||
|
||||
Процедура ТестДолжен_ПроверитьПередачуОтправляемыхДанныхВСтрокуЗапроса() Экспорт
|
||||
|
||||
КонсольнаяКоманда = "curl 'https://example.com' \
|
||||
КонсольнаяКоманда = "curl http://example.com \
|
||||
| --get \
|
||||
| -d 'param1=value' \
|
||||
| --data 'param2=value2' \
|
||||
| --data @path-to-file";
|
||||
|
||||
ПрограммныйКод = "ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 443, , , , , ЗащищенноеСоединение);
|
||||
|
|
||||
|ТекстовыйДокумент = Новый ТекстовыйДокумент();
|
||||
ПрограммныйКод = "ТекстовыйДокумент = Новый ТекстовыйДокумент();
|
||||
|ТекстовыйДокумент.Прочитать(""path-to-file"");
|
||||
|ТекстовыеДанныеИзФайла_1 = ТекстовыйДокумент.ПолучитьТекст();
|
||||
|ТекстовыеДанныеИзФайла_1 = СтрЗаменить(ТекстовыеДанныеИзФайла_1, Символы.ПС, """");
|
||||
|ТекстовыеДанныеИзФайла_1 = СтрЗаменить(ТекстовыеДанныеИзФайла_1, Символы.ВК, """");
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 80);
|
||||
|
|
||||
|АдресРесурса = ""/?param1=value¶m2=value2""
|
||||
| + ""&"" + ТекстовыеДанныеИзФайла_1;
|
||||
|
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса);
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);";
|
||||
|
||||
КонвертерКомандыCURL = Новый КонвертерКомандыCURL();
|
||||
@@ -347,24 +388,22 @@
|
||||
|
||||
Процедура ТестДолжен_ПроверитьПередачуОтправляемыхДанныхВСтрокуЗапросаИзФайла() Экспорт
|
||||
|
||||
КонсольнаяКоманда = "curl 'https://example.com' \
|
||||
КонсольнаяКоманда = "curl http://example.com \
|
||||
| --get \
|
||||
| --data @path-to-file";
|
||||
|
||||
ПрограммныйКод = "ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 443, , , , , ЗащищенноеСоединение);
|
||||
|
|
||||
|ТекстовыйДокумент = Новый ТекстовыйДокумент();
|
||||
ПрограммныйКод = "ТекстовыйДокумент = Новый ТекстовыйДокумент();
|
||||
|ТекстовыйДокумент.Прочитать(""path-to-file"");
|
||||
|ТекстовыеДанныеИзФайла_1 = ТекстовыйДокумент.ПолучитьТекст();
|
||||
|ТекстовыеДанныеИзФайла_1 = СтрЗаменить(ТекстовыеДанныеИзФайла_1, Символы.ПС, """");
|
||||
|ТекстовыеДанныеИзФайла_1 = СтрЗаменить(ТекстовыеДанныеИзФайла_1, Символы.ВК, """");
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 80);
|
||||
|
|
||||
|АдресРесурса = ""/?""
|
||||
| + ТекстовыеДанныеИзФайла_1;
|
||||
|
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса);
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);";
|
||||
|
||||
КонвертерКомандыCURL = Новый КонвертерКомандыCURL();
|
||||
@@ -376,27 +415,25 @@
|
||||
|
||||
Процедура ТестДолжен_ПроверитьВставкуОтправляемыхДанныхВСтрокуЗапроса() Экспорт
|
||||
|
||||
КонсольнаяКоманда = "curl 'https://example.com?param3=value3#page-1' \
|
||||
КонсольнаяКоманда = "curl 'http://example.com?param3=value3#page-1' \
|
||||
| --get \
|
||||
| -d 'param1=value' \
|
||||
| --data 'param2=value2' \
|
||||
| --data @path-to-file";
|
||||
|
||||
ПрограммныйКод = "ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 443, , , , , ЗащищенноеСоединение);
|
||||
|
|
||||
|ТекстовыйДокумент = Новый ТекстовыйДокумент();
|
||||
ПрограммныйКод = "ТекстовыйДокумент = Новый ТекстовыйДокумент();
|
||||
|ТекстовыйДокумент.Прочитать(""path-to-file"");
|
||||
|ТекстовыеДанныеИзФайла_1 = ТекстовыйДокумент.ПолучитьТекст();
|
||||
|ТекстовыеДанныеИзФайла_1 = СтрЗаменить(ТекстовыеДанныеИзФайла_1, Символы.ПС, """");
|
||||
|ТекстовыеДанныеИзФайла_1 = СтрЗаменить(ТекстовыеДанныеИзФайла_1, Символы.ВК, """");
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 80);
|
||||
|
|
||||
|АдресРесурса = ""/?param3=value3¶m1=value¶m2=value2""
|
||||
| + ""&"" + ТекстовыеДанныеИзФайла_1
|
||||
| + ""#page-1"";
|
||||
|
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса);
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);";
|
||||
|
||||
КонвертерКомандыCURL = Новый КонвертерКомандыCURL();
|
||||
@@ -409,21 +446,17 @@
|
||||
Процедура ТестДолжен_ПроверитьHTTPМетодHEAD() Экспорт
|
||||
|
||||
КонсольнаяКоманда = "
|
||||
|curl 'https://example1.com' --head
|
||||
|curl 'https://example2.com' -X HEAD";
|
||||
|curl http://example1.com --head
|
||||
|curl http://example2.com -X HEAD";
|
||||
|
||||
ПрограммныйКод = "ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example1.com"", 443, , , , , ЗащищенноеСоединение);
|
||||
|
|
||||
ПрограммныйКод = "Соединение = Новый HTTPСоединение(""example1.com"", 80);
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"");
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""HEAD"", HTTPЗапрос);
|
||||
|
|
||||
|ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example2.com"", 443, , , , , ЗащищенноеСоединение);
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example2.com"", 80);
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"");
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""HEAD"", HTTPЗапрос);";
|
||||
|
||||
КонвертерКомандыCURL = Новый КонвертерКомандыCURL();
|
||||
@@ -435,20 +468,16 @@
|
||||
|
||||
Процедура ТестДолжен_ПроверитьОбработкуНесколькихКоманд() Экспорт
|
||||
|
||||
КонсольнаяКоманда = "curl 'https://example1.com' & curl 'https://example2.com'";
|
||||
КонсольнаяКоманда = "curl http://example1.com & curl http://example2.com";
|
||||
|
||||
ПрограммныйКод = "ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example1.com"", 443, , , , , ЗащищенноеСоединение);
|
||||
|
|
||||
ПрограммныйКод = "Соединение = Новый HTTPСоединение(""example1.com"", 80);
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"");
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);
|
||||
|
|
||||
|ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example2.com"", 443, , , , , ЗащищенноеСоединение);
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example2.com"", 80);
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"");
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);";
|
||||
|
||||
КонвертерКомандыCURL = Новый КонвертерКомандыCURL();
|
||||
@@ -463,8 +492,8 @@
|
||||
КонсольнаяКоманда = "curl 'http://example.com'";
|
||||
|
||||
ПрограммныйКод = "Соединение = Новый HTTPСоединение(""example.com"", 80);
|
||||
|
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"");
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);";
|
||||
|
||||
КонвертерКомандыCURL = Новый КонвертерКомандыCURL();
|
||||
@@ -481,8 +510,54 @@
|
||||
ПрограммныйКод = "ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 443, , , , , ЗащищенноеСоединение);
|
||||
|
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"");
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);";
|
||||
|
||||
КонвертерКомандыCURL = Новый КонвертерКомандыCURL();
|
||||
Результат = КонвертерКомандыCURL.Конвертировать(КонсольнаяКоманда, Новый ГенераторПрограммногоКода1С());
|
||||
|
||||
Ожидаем.Что(Результат).Равно(ПрограммныйКод);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ТестДолжен_ПроверитьИнициализациюЗащищенногоСоединенияТолькоОдинРаз() Экспорт
|
||||
|
||||
КонсольнаяКоманда = "curl https://example1.com https://example2.com";
|
||||
|
||||
ПрограммныйКод = "ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example1.com"", 443, , , , , ЗащищенноеСоединение);
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"");
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example2.com"", 443, , , , , ЗащищенноеСоединение);
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"");
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);";
|
||||
|
||||
КонвертерКомандыCURL = Новый КонвертерКомандыCURL();
|
||||
Результат = КонвертерКомандыCURL.Конвертировать(КонсольнаяКоманда, Новый ГенераторПрограммногоКода1С());
|
||||
|
||||
Ожидаем.Что(Результат).Равно(ПрограммныйКод);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ТестДолжен_ПроверитьИспользованиеЗащищенногоСоединенияПриНаличииHTTPSиHTTP() Экспорт
|
||||
|
||||
КонсольнаяКоманда = "curl http://example1.com https://example2.com";
|
||||
|
||||
ПрограммныйКод = "ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example1.com"", 80);
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"");
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example2.com"", 443, , , , , ЗащищенноеСоединение);
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"");
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);";
|
||||
|
||||
КонвертерКомандыCURL = Новый КонвертерКомандыCURL();
|
||||
@@ -500,8 +575,8 @@
|
||||
|ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL(СертификатКлиента);
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 443, , , , , ЗащищенноеСоединение);
|
||||
|
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"");
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);";
|
||||
|
||||
КонвертерКомандыCURL = Новый КонвертерКомандыCURL();
|
||||
@@ -519,8 +594,8 @@
|
||||
|ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL(СертификатКлиента);
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 443, , , , , ЗащищенноеСоединение);
|
||||
|
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"");
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);";
|
||||
|
||||
КонвертерКомандыCURL = Новый КонвертерКомандыCURL();
|
||||
@@ -539,8 +614,8 @@
|
||||
|ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL(СертификатКлиента, СертификатыУдостоверяющихЦентров);
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 443, , , , , ЗащищенноеСоединение);
|
||||
|
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"");
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);";
|
||||
|
||||
КонвертерКомандыCURL = Новый КонвертерКомандыCURL();
|
||||
@@ -560,8 +635,8 @@
|
||||
|ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL(СертификатКлиента, СертификатыУдостоверяющихЦентров);
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 443, , , , , ЗащищенноеСоединение);
|
||||
|
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"");
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);";
|
||||
|
||||
КонвертерКомандыCURL = Новый КонвертерКомандыCURL();
|
||||
@@ -581,9 +656,7 @@
|
||||
| --url-query '+name=%20foo' \
|
||||
| --url-query +@not-a-file";
|
||||
|
||||
ПрограммныйКод = "Соединение = Новый HTTPСоединение(""example.com"", 80);
|
||||
|
|
||||
|ТекстовыйДокумент = Новый ТекстовыйДокумент();
|
||||
ПрограммныйКод = "ТекстовыйДокумент = Новый ТекстовыйДокумент();
|
||||
|ТекстовыйДокумент.Прочитать(""file"");
|
||||
|ТекстовыеДанныеИзФайла_1 = ТекстовыйДокумент.ПолучитьТекст();
|
||||
|ТекстовыеДанныеИзФайла_1 = КодироватьСтроку(ТекстовыеДанныеИзФайла_1, СпособКодированияСтроки.URLВКодировкеURL);
|
||||
@@ -594,11 +667,13 @@
|
||||
|ТекстовыеДанныеИзФайла_2 = ТекстовыйДокумент.ПолучитьТекст();
|
||||
|ТекстовыеДанныеИзФайла_2 = КодироватьСтроку(ТекстовыеДанныеИзФайла_2, СпособКодированияСтроки.URLВКодировкеURL);
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 80);
|
||||
|
|
||||
|АдресРесурса = ""/?name=val&encodethis%26&name=%20foo&@not-a-file""
|
||||
| + ""&"" + ТекстовыеДанныеИзФайла_1
|
||||
| + ""&"" + ТекстовыеДанныеИзФайла_2;
|
||||
|
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса);
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);";
|
||||
|
||||
КонвертерКомандыCURL = Новый КонвертерКомандыCURL();
|
||||
@@ -612,17 +687,17 @@
|
||||
|
||||
КонсольнаяКоманда = "curl http://example.com --url-query @fileonly";
|
||||
|
||||
ПрограммныйКод = "Соединение = Новый HTTPСоединение(""example.com"", 80);
|
||||
|
|
||||
|ТекстовыйДокумент = Новый ТекстовыйДокумент();
|
||||
ПрограммныйКод = "ТекстовыйДокумент = Новый ТекстовыйДокумент();
|
||||
|ТекстовыйДокумент.Прочитать(""fileonly"");
|
||||
|ТекстовыеДанныеИзФайла_1 = ТекстовыйДокумент.ПолучитьТекст();
|
||||
|ТекстовыеДанныеИзФайла_1 = КодироватьСтроку(ТекстовыеДанныеИзФайла_1, СпособКодированияСтроки.URLВКодировкеURL);
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 80);
|
||||
|
|
||||
|АдресРесурса = ""/?""
|
||||
| + ТекстовыеДанныеИзФайла_1;
|
||||
|
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса);
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);";
|
||||
|
||||
КонвертерКомандыCURL = Новый КонвертерКомандыCURL();
|
||||
@@ -637,8 +712,8 @@
|
||||
КонсольнаяКоманда = "curl http://example.com -o file.html";
|
||||
|
||||
ПрограммныйКод = "Соединение = Новый HTTPСоединение(""example.com"", 80);
|
||||
|
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"");
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос, ""file.html"");";
|
||||
|
||||
КонвертерКомандыCURL = Новый КонвертерКомандыCURL();
|
||||
@@ -655,13 +730,13 @@
|
||||
| http://example.com/page2.html --output page2.html";
|
||||
|
||||
ПрограммныйКод = "Соединение = Новый HTTPСоединение(""example.com"", 80);
|
||||
|
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/page1.html"");
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос, ""page1.html"");
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 80);
|
||||
|
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/page2.html"");
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос, ""page2.html"");";
|
||||
|
||||
КонвертерКомандыCURL = Новый КонвертерКомандыCURL();
|
||||
@@ -679,18 +754,18 @@
|
||||
| http://example.com/index.html";
|
||||
|
||||
ПрограммныйКод = "Соединение = Новый HTTPСоединение(""example.com"", 80);
|
||||
|
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/about.html"");
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос, ""about.html"");
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 80);
|
||||
|
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/catalog/cars.html"");
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос, ""cars.html"");
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 80);
|
||||
|
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/index.html"");
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);";
|
||||
|
||||
КонвертерКомандыCURL = Новый КонвертерКомандыCURL();
|
||||
@@ -708,18 +783,18 @@
|
||||
| http://example.com/index.html";
|
||||
|
||||
ПрограммныйКод = "Соединение = Новый HTTPСоединение(""example.com"", 80);
|
||||
|
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/about.html"");
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос, ""file.html"");
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 80);
|
||||
|
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/catalog/cars.html"");
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос, ""cars.html"");
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 80);
|
||||
|
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/index.html"");
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос, ""index.html"");";
|
||||
|
||||
КонвертерКомандыCURL = Новый КонвертерКомандыCURL();
|
||||
@@ -753,8 +828,8 @@
|
||||
КонсольнаяКоманда = СтрЗаменить(КонсольнаяКоманда, "/some/path", КаталогСохраненияОС);
|
||||
|
||||
ПрограммныйКод = "Соединение = Новый HTTPСоединение(""example.com"", 80);
|
||||
|
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/about.html"");
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос, ""/some/path/file.html"");";
|
||||
ПрограммныйКод = СтрЗаменить(ПрограммныйКод, "/some/path/", КаталогСохраненияОС + ПолучитьРазделительПути());
|
||||
|
||||
@@ -773,8 +848,8 @@
|
||||
КонсольнаяКоманда = СтрЗаменить(КонсольнаяКоманда, "/some/path", КаталогСохраненияОС);
|
||||
|
||||
ПрограммныйКод = "Соединение = Новый HTTPСоединение(""example.com"", 80);
|
||||
|
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/about.html"");
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос, ""/some/path/about.html"");";
|
||||
ПрограммныйКод = СтрЗаменить(ПрограммныйКод, "/some/path/", КаталогСохраненияОС + ПолучитьРазделительПути());
|
||||
|
||||
@@ -793,8 +868,32 @@
|
||||
|Прокси.Установить(""http"", ""proxy.example"", 1088, , , Ложь);
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 80, , , Прокси);
|
||||
|
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"");
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);";
|
||||
|
||||
КонвертерКомандыCURL = Новый КонвертерКомандыCURL();
|
||||
Результат = КонвертерКомандыCURL.Конвертировать(КонсольнаяКоманда, Новый ГенераторПрограммногоКода1С());
|
||||
|
||||
Ожидаем.Что(Результат).Равно(ПрограммныйКод);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ТестДолжен_ПроверитьИнициализациюПроксиТолькоОдинРаз() Экспорт
|
||||
|
||||
КонсольнаяКоманда = "curl http://example1.com http://example2.com --proxy http://proxy.example:1088";
|
||||
|
||||
ПрограммныйКод = "Прокси = Новый ИнтернетПрокси();
|
||||
|Прокси.Установить(""http"", ""proxy.example"", 1088, , , Ложь);
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example1.com"", 80, , , Прокси);
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"");
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example2.com"", 80, , , Прокси);
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"");
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);";
|
||||
|
||||
КонвертерКомандыCURL = Новый КонвертерКомандыCURL();
|
||||
@@ -814,8 +913,8 @@
|
||||
|Прокси.Установить(""http"", ""proxy.example"", 1080, ""user"", ""secret"", Ложь);
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 80, , , Прокси);
|
||||
|
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"");
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);";
|
||||
|
||||
КонвертерКомандыCURL = Новый КонвертерКомандыCURL();
|
||||
@@ -835,8 +934,8 @@
|
||||
|Прокси.Установить(""http"", ""proxy.example"", 1080);
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 80, , , Прокси);
|
||||
|
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"");
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);";
|
||||
|
||||
КонвертерКомандыCURL = Новый КонвертерКомандыCURL();
|
||||
@@ -867,8 +966,8 @@
|
||||
КонсольнаяКоманда = "curl http://example.com/ --max-time 20 --connect-timeout 5.5";
|
||||
|
||||
ПрограммныйКод = "Соединение = Новый HTTPСоединение(""example.com"", 80, , , , 25.5);
|
||||
|
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"");
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);";
|
||||
|
||||
КонвертерКомандыCURL = Новый КонвертерКомандыCURL();
|
||||
@@ -883,8 +982,8 @@
|
||||
КонсольнаяКоманда = "curl http://example.com/ --max-time 20 --connect-timeout 0";
|
||||
|
||||
ПрограммныйКод = "Соединение = Новый HTTPСоединение(""example.com"", 80);
|
||||
|
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"");
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);";
|
||||
|
||||
КонвертерКомандыCURL = Новый КонвертерКомандыCURL();
|
||||
@@ -902,8 +1001,6 @@
|
||||
|Заголовки.Вставить(""Content-Type"", ""application/json"");
|
||||
|Заголовки.Вставить(""Accept"", ""application/json"");
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 80);
|
||||
|
|
||||
|ТекстовыйДокумент = Новый ТекстовыйДокумент();
|
||||
|ТекстовыйДокумент.Прочитать(""path-to-file1"");
|
||||
|ТекстовыеДанныеИзФайла_1 = ТекстовыйДокумент.ПолучитьТекст();
|
||||
@@ -912,12 +1009,13 @@
|
||||
|ТекстовыйДокумент.Прочитать(""path-to-file2"");
|
||||
|ТекстовыеДанныеИзФайла_2 = ТекстовыйДокумент.ПолучитьТекст();
|
||||
|
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"", Заголовки);
|
||||
|
|
||||
|ТелоЗапроса = ТекстовыеДанныеИзФайла_1
|
||||
| + ТекстовыеДанныеИзФайла_2;
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 80);
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"", Заголовки);
|
||||
|HTTPЗапрос.УстановитьТелоИзСтроки(ТелоЗапроса);
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);";
|
||||
|
||||
КонвертерКомандыCURL = Новый КонвертерКомандыCURL();
|
||||
@@ -936,9 +1034,9 @@
|
||||
|Заголовки.Вставить(""Accept"", ""application/json"");
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 80);
|
||||
|
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"", Заголовки);
|
||||
|HTTPЗапрос.УстановитьТелоИзСтроки(""{""""drink"""": """"coffe""""}"");
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);";
|
||||
|
||||
КонвертерКомандыCURL = Новый КонвертерКомандыCURL();
|
||||
@@ -959,9 +1057,9 @@
|
||||
|Заголовки.Вставить(""Accept"", ""application/json"");
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 80);
|
||||
|
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"", Заголовки);
|
||||
|HTTPЗапрос.УстановитьТелоИзСтроки(""{""""drink"""": """"coffe""""}"");
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);";
|
||||
|
||||
КонвертерКомандыCURL = Новый КонвертерКомандыCURL();
|
||||
@@ -981,18 +1079,17 @@
|
||||
|Заголовки.Вставить(""Content-Type"", ""application/json"");
|
||||
|Заголовки.Вставить(""Accept"", ""application/json"");
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 80);
|
||||
|
|
||||
|ТекстовыйДокумент = Новый ТекстовыйДокумент();
|
||||
|ТекстовыйДокумент.Прочитать(""path-to-file"");
|
||||
|ТекстовыеДанныеИзФайла_1 = ТекстовыйДокумент.ПолучитьТекст();
|
||||
|
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"", Заголовки);
|
||||
|
|
||||
|ТелоЗапроса = ""{""""drink"""": """"coffe"""", """"size"""": ""
|
||||
| + ТекстовыеДанныеИзФайла_1;
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 80);
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"", Заголовки);
|
||||
|HTTPЗапрос.УстановитьТелоИзСтроки(ТелоЗапроса);
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);";
|
||||
|
||||
КонвертерКомандыCURL = Новый КонвертерКомандыCURL();
|
||||
@@ -1010,8 +1107,8 @@
|
||||
|Заголовки.Вставить(""User-Agent"", ""Agent 007"");
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 80);
|
||||
|
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"", Заголовки);
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);";
|
||||
|
||||
КонвертерКомандыCURL = Новый КонвертерКомандыCURL();
|
||||
@@ -1029,8 +1126,8 @@
|
||||
|Заголовки.Вставить(""User-Agent"", """");
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 80);
|
||||
|
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"", Заголовки);
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);";
|
||||
|
||||
КонвертерКомандыCURL = Новый КонвертерКомандыCURL();
|
||||
@@ -1045,8 +1142,8 @@
|
||||
КонсольнаяКоманда = "curl http://example.com/ -A ''";
|
||||
|
||||
ПрограммныйКод = "Соединение = Новый HTTPСоединение(""example.com"", 80);
|
||||
|
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"");
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);";
|
||||
|
||||
КонвертерКомандыCURL = Новый КонвертерКомандыCURL();
|
||||
@@ -1064,8 +1161,8 @@
|
||||
|Заголовки.Вставить(""User-Agent"", ""Agent 007"");
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 80);
|
||||
|
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"", Заголовки);
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);";
|
||||
|
||||
КонвертерКомандыCURL = Новый КонвертерКомандыCURL();
|
||||
|
||||
@@ -73,8 +73,8 @@
|
||||
КонсольнаяКоманда = "curl http://example.com/ --hsts cache.txt";
|
||||
|
||||
ПрограммныйКод = "Соединение = Новый HTTPСоединение(""example.com"", 80);
|
||||
|
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"");
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);";
|
||||
|
||||
Ошибки = Неопределено;
|
||||
|
||||
Reference in New Issue
Block a user