diff --git a/src/Классы/ГенераторПрограммногоКода1С.os b/src/Классы/ГенераторПрограммногоКода1С.os index d600b34..54a4186 100644 --- a/src/Классы/ГенераторПрограммногоКода1С.os +++ b/src/Классы/ГенераторПрограммногоКода1С.os @@ -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" Или ЗначениеЗаполнено(ОписаниеЗапроса.ИмяФайлаСертификатаКлиента); +КонецФункции + Процедура ВывестиСтроку(Строка) Результат = Результат + Символы.ПС + Строка; КонецПроцедуры diff --git a/tests/ГенераторПрограммногоКода1С_test.os b/tests/ГенераторПрограммногоКода1С_test.os index 376b5d6..236f70f 100644 --- a/tests/ГенераторПрограммногоКода1С_test.os +++ b/tests/ГенераторПрограммногоКода1С_test.os @@ -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(); diff --git a/tests/КонвертерКомандыCURL_test.os b/tests/КонвертерКомандыCURL_test.os index 9f3dabe..43f1c64 100644 --- a/tests/КонвертерКомандыCURL_test.os +++ b/tests/КонвертерКомандыCURL_test.os @@ -73,8 +73,8 @@ КонсольнаяКоманда = "curl http://example.com/ --hsts cache.txt"; ПрограммныйКод = "Соединение = Новый HTTPСоединение(""example.com"", 80); - | |HTTPЗапрос = Новый HTTPЗапрос(""/""); + | |HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);"; Ошибки = Неопределено;