mirror of
https://github.com/alei1180/curlone.git
synced 2025-11-28 23:19:49 +02:00
fix: Определение метода запроса для каждого URL
This commit is contained in:
@@ -272,7 +272,7 @@
|
|||||||
Для Каждого ПередаваемыйФайл Из ОписаниеЗапроса.Файлы Цикл
|
Для Каждого ПередаваемыйФайл Из ОписаниеЗапроса.Файлы Цикл
|
||||||
|
|
||||||
Если Не (ПередаваемыйФайл.ПрочитатьСодержимое
|
Если Не (ПередаваемыйФайл.ПрочитатьСодержимое
|
||||||
Или ОписаниеЗапроса.ПередаватьОтправляемыеДанныеВСтрокуЗапроса) Тогда
|
Или ПередаваемыйФайл.Назначение = НазначенияПередаваемыхДанных.СтрокаЗапроса) Тогда
|
||||||
Продолжить;
|
Продолжить;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
@@ -347,8 +347,7 @@
|
|||||||
СтрокаЗапроса = СобратьИсходнуюСтрокуЗапроса(СтруктураURL);
|
СтрокаЗапроса = СобратьИсходнуюСтрокуЗапроса(СтруктураURL);
|
||||||
|
|
||||||
Для Каждого ПередаваемыйТекст Из ОписаниеЗапроса.ОтправляемыеТекстовыеДанные Цикл
|
Для Каждого ПередаваемыйТекст Из ОписаниеЗапроса.ОтправляемыеТекстовыеДанные Цикл
|
||||||
Если ОписаниеЗапроса.ПередаватьОтправляемыеДанныеВСтрокуЗапроса
|
Если ПередаваемыйТекст.Назначение = НазначенияПередаваемыхДанных.СтрокаЗапроса Тогда
|
||||||
ИЛИ ПередаваемыйТекст.Назначение = НазначенияПередаваемыхДанных.СтрокаЗапроса Тогда
|
|
||||||
СтрокаЗапроса = СтрокаЗапроса
|
СтрокаЗапроса = СтрокаЗапроса
|
||||||
+ ?(ЗначениеЗаполнено(СтрокаЗапроса), РазделительПараметровЗапроса, "")
|
+ ?(ЗначениеЗаполнено(СтрокаЗапроса), РазделительПараметровЗапроса, "")
|
||||||
+ ПередаваемыйТекст.Значение;
|
+ ПередаваемыйТекст.Значение;
|
||||||
@@ -357,8 +356,7 @@
|
|||||||
|
|
||||||
КодПрочитанныхФайлов = "";
|
КодПрочитанныхФайлов = "";
|
||||||
Для Каждого ПрочитанныйФайл Из ПрочитанныеФайлы Цикл
|
Для Каждого ПрочитанныйФайл Из ПрочитанныеФайлы Цикл
|
||||||
Если ОписаниеЗапроса.ПередаватьОтправляемыеДанныеВСтрокуЗапроса
|
Если ПрочитанныйФайл.ПередаваемыйФайл.Назначение = НазначенияПередаваемыхДанных.СтрокаЗапроса Тогда
|
||||||
Или ПрочитанныйФайл.ПередаваемыйФайл.Назначение = НазначенияПередаваемыхДанных.СтрокаЗапроса Тогда
|
|
||||||
КодПрочитанныхФайлов = КодПрочитанныхФайлов
|
КодПрочитанныхФайлов = КодПрочитанныхФайлов
|
||||||
+ ?(КодПрочитанныхФайлов = "", "", КонкатенацияСПереносомСтрокиИАмперсандом)
|
+ ?(КодПрочитанныхФайлов = "", "", КонкатенацияСПереносомСтрокиИАмперсандом)
|
||||||
+ ПрочитанныйФайл.ИмяПеременной;
|
+ ПрочитанныйФайл.ИмяПеременной;
|
||||||
@@ -401,10 +399,6 @@
|
|||||||
|
|
||||||
Процедура ВывестиИнициализациюТекстовогоТелаЗапроса()
|
Процедура ВывестиИнициализациюТекстовогоТелаЗапроса()
|
||||||
|
|
||||||
Если ОписаниеЗапроса.ПередаватьОтправляемыеДанныеВСтрокуЗапроса Тогда
|
|
||||||
Возврат;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
ЭлементыТелаЗапросаДляВывода = Новый Массив;
|
ЭлементыТелаЗапросаДляВывода = Новый Массив;
|
||||||
КонкатенацияСПереносомСтрокиИРазделителя = "
|
КонкатенацияСПереносомСтрокиИРазделителя = "
|
||||||
| + ""%1"" + ";
|
| + ""%1"" + ";
|
||||||
@@ -467,10 +461,6 @@
|
|||||||
|
|
||||||
Процедура ВывестиУстановкуТелаЗапросаИзФайлаИВызоваМетодаДляКаждого(ОписаниеРесурса)
|
Процедура ВывестиУстановкуТелаЗапросаИзФайлаИВызоваМетодаДляКаждого(ОписаниеРесурса)
|
||||||
|
|
||||||
Если ОписаниеЗапроса.ПередаватьОтправляемыеДанныеВСтрокуЗапроса Тогда
|
|
||||||
Возврат;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
ДлинаИмениФайлаВКомментарии = 100;
|
ДлинаИмениФайлаВКомментарии = 100;
|
||||||
|
|
||||||
ВсеФайлы = Новый Массив();
|
ВсеФайлы = Новый Массив();
|
||||||
@@ -524,10 +514,6 @@
|
|||||||
|
|
||||||
Процедура ВывестиУстановкуТелаЗапросаИзФайла(ОписаниеРесурса)
|
Процедура ВывестиУстановкуТелаЗапросаИзФайла(ОписаниеРесурса)
|
||||||
|
|
||||||
Если ОписаниеЗапроса.ПередаватьОтправляемыеДанныеВСтрокуЗапроса Тогда
|
|
||||||
Возврат;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Файлы = Новый Массив();
|
Файлы = Новый Массив();
|
||||||
ОбщегоНазначения.ДополнитьМассив(Файлы, ОписаниеЗапроса.Файлы);
|
ОбщегоНазначения.ДополнитьМассив(Файлы, ОписаниеЗапроса.Файлы);
|
||||||
ОбщегоНазначения.ДополнитьМассив(Файлы, ОписаниеРесурса.Файлы);
|
ОбщегоНазначения.ДополнитьМассив(Файлы, ОписаниеРесурса.Файлы);
|
||||||
@@ -555,7 +541,7 @@
|
|||||||
Процедура ВывестиВызовHTTPМетода(ОписаниеРесурса)
|
Процедура ВывестиВызовHTTPМетода(ОписаниеРесурса)
|
||||||
|
|
||||||
ПараметрыФункции = Новый Массив;
|
ПараметрыФункции = Новый Массив;
|
||||||
ПараметрыФункции.Добавить(ОбернутьКавычками(ОписаниеЗапроса.Метод));
|
ПараметрыФункции.Добавить(ОбернутьКавычками(ОписаниеРесурса.Метод));
|
||||||
ПараметрыФункции.Добавить(ИмяПараметраHTTPЗапрос);
|
ПараметрыФункции.Добавить(ИмяПараметраHTTPЗапрос);
|
||||||
ПараметрыФункции.Добавить(ОбернутьКавычками(ОписаниеРесурса.ИмяВыходногоФайла, Истина));
|
ПараметрыФункции.Добавить(ОбернутьКавычками(ОписаниеРесурса.ИмяВыходногоФайла, Истина));
|
||||||
|
|
||||||
|
|||||||
@@ -120,7 +120,6 @@
|
|||||||
ПрочитатьПользователя(Команда);
|
ПрочитатьПользователя(Команда);
|
||||||
ПрочитатьДанныеДляОтправки(Команда);
|
ПрочитатьДанныеДляОтправки(Команда);
|
||||||
ПрочитатьМетодЗапроса(Команда);
|
ПрочитатьМетодЗапроса(Команда);
|
||||||
ПрочитатьПризнакПередачиОтправляемыхДанныхВСтрокуЗапроса(Команда);
|
|
||||||
ПрочитатьСертификатКлиента(Команда);
|
ПрочитатьСертификатКлиента(Команда);
|
||||||
ПрочитатьИспользованиеСертификатыУЦИзХранилищаОС(Команда);
|
ПрочитатьИспользованиеСертификатыУЦИзХранилищаОС(Команда);
|
||||||
ПрочитатьИмяФайлаСертификатовУЦ(Команда);
|
ПрочитатьИмяФайлаСертификатовУЦ(Команда);
|
||||||
@@ -138,36 +137,44 @@
|
|||||||
|
|
||||||
Процедура ПрочитатьМетодЗапроса(Команда)
|
Процедура ПрочитатьМетодЗапроса(Команда)
|
||||||
|
|
||||||
Метод = ВРег(ЗначениеОпции(Команда, "X"));
|
|
||||||
|
|
||||||
Если ЗначениеЗаполнено(Метод) Тогда
|
|
||||||
ОписаниеЗапроса.Метод = Метод;
|
|
||||||
Возврат;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
ЕстьДанныеPOST = (ЕстьОпцииГруппыData(Команда) ИЛИ ЕстьОпции(команда, "json"));
|
ЕстьДанныеPOST = (ЕстьОпцииГруппыData(Команда) ИЛИ ЕстьОпции(команда, "json"));
|
||||||
|
|
||||||
ЕстьМетодGET = ЗначениеОпции(Команда, "get") = Истина;
|
ЕстьМетодGET = ЗначениеОпции(Команда, "get") = Истина;
|
||||||
ЕстьМетодPOST = ЗначениеОпции(Команда, "get") = Ложь И ЕстьДанныеPOST;
|
ЕстьМетодPOST = ЗначениеОпции(Команда, "get") = Ложь И ЕстьДанныеPOST;
|
||||||
ЕстьМетодPUT = ЕстьОпции(Команда, "T,upload-file");
|
|
||||||
ЕстьМетодHEAD = ЗначениеОпции(Команда, "head") = Истина;
|
ЕстьМетодHEAD = ЗначениеОпции(Команда, "head") = Истина;
|
||||||
|
|
||||||
|
Файлы = ЗначениеОпции(Команда, "upload-file");
|
||||||
|
КоличествоФайлов = Файлы.Количество();
|
||||||
|
НомерРесурса = 0;
|
||||||
|
Для Каждого ОписаниеРесурса Из ОписаниеЗапроса.АдресаРесурсов Цикл
|
||||||
|
|
||||||
|
НомерРесурса = НомерРесурса + 1;
|
||||||
|
|
||||||
|
Метод = ВРег(ЗначениеОпции(Команда, "X"));
|
||||||
|
Если ЗначениеЗаполнено(Метод) Тогда
|
||||||
|
ОписаниеРесурса.Метод = Метод;
|
||||||
|
Продолжить;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ЕстьМетодPUT = НомерРесурса <= КоличествоФайлов;
|
||||||
|
ОшибочныеМетоды = "";
|
||||||
Если ЕстьМетодPUT Тогда
|
Если ЕстьМетодPUT Тогда
|
||||||
Если ЕстьМетодGET И ЕстьДанныеPOST Тогда
|
Если ЕстьМетодGET И ЕстьДанныеPOST Тогда
|
||||||
ТекстОшибки = "PUT и GET";
|
ОшибочныеМетоды = "PUT и GET";
|
||||||
ИначеЕсли ЕстьМетодPOST Тогда
|
ИначеЕсли ЕстьМетодPOST Тогда
|
||||||
ТекстОшибки = "PUT и POST";
|
ОшибочныеМетоды = "PUT и POST";
|
||||||
ИначеЕсли ЕстьМетодHEAD Тогда
|
ИначеЕсли ЕстьМетодHEAD Тогда
|
||||||
ТекстОшибки = "PUT и HEAD";
|
ОшибочныеМетоды = "PUT и HEAD";
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
ИначеЕсли ЕстьМетодPOST Тогда
|
ИначеЕсли ЕстьМетодPOST Тогда
|
||||||
Если ЕстьМетодHEAD Тогда
|
Если ЕстьМетодHEAD Тогда
|
||||||
ТекстОшибки = "POST и HEAD";
|
ОшибочныеМетоды = "POST и HEAD";
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если Не ПустаяСтрока(ТекстОшибки) Тогда
|
Если Не ПустаяСтрока(ОшибочныеМетоды) Тогда
|
||||||
ТекстОшибки = "Запрещено одновременное использование нескольких HTTP методов: " + ТекстОшибки;
|
ТекстОшибки = СтрШаблон("Запрещено одновременное использование нескольких HTTP методов %1 для URL %2",
|
||||||
|
ОшибочныеМетоды, ОписаниеРесурса.URL);
|
||||||
ИсходящиеОшибки.Добавить(ОбщегоНазначения.НоваяОшибка(ТекстОшибки, Истина));
|
ИсходящиеОшибки.Добавить(ОбщегоНазначения.НоваяОшибка(ТекстОшибки, Истина));
|
||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
@@ -182,7 +189,9 @@
|
|||||||
Метод = "GET";
|
Метод = "GET";
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ОписаниеЗапроса.Метод = Метод;
|
ОписаниеРесурса.Метод = Метод;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
@@ -391,19 +400,20 @@
|
|||||||
Процедура ПрочитатьData(Команда)
|
Процедура ПрочитатьData(Команда)
|
||||||
|
|
||||||
МассивДанных = ЗначениеОпции(Команда, "d"); // -d, --data
|
МассивДанных = ЗначениеОпции(Команда, "d"); // -d, --data
|
||||||
|
Назначение = НазначениеПередаваемыхДанныхPOST(Команда);
|
||||||
|
|
||||||
Для Каждого Данные Из МассивДанных Цикл
|
Для Каждого Данные Из МассивДанных Цикл
|
||||||
|
|
||||||
Если Лев(Данные, 1) = "@" Тогда
|
Если Лев(Данные, 1) = "@" Тогда
|
||||||
ИмяФайла = Сред(Данные, 2);
|
ИмяФайла = Сред(Данные, 2);
|
||||||
|
|
||||||
ПередаваемыйФайл = Новый ПередаваемыйФайл(ИмяФайла, НазначенияПередаваемыхДанных.ТелоЗапроса);
|
ПередаваемыйФайл = Новый ПередаваемыйФайл(ИмяФайла, Назначение);
|
||||||
ПередаваемыйФайл.ПрочитатьСодержимое = Истина;
|
ПередаваемыйФайл.ПрочитатьСодержимое = Истина;
|
||||||
ПередаваемыйФайл.УдалятьПереносыСтрок = Истина;
|
ПередаваемыйФайл.УдалятьПереносыСтрок = Истина;
|
||||||
|
|
||||||
ОписаниеЗапроса.Файлы.Добавить(ПередаваемыйФайл);
|
ОписаниеЗапроса.Файлы.Добавить(ПередаваемыйФайл);
|
||||||
Иначе
|
Иначе
|
||||||
ПередаваемыйТекст = Новый ПередаваемыйТекст(Данные, НазначенияПередаваемыхДанных.ТелоЗапроса);
|
ПередаваемыйТекст = Новый ПередаваемыйТекст(Данные, Назначение);
|
||||||
ОписаниеЗапроса.ОтправляемыеТекстовыеДанные.Добавить(ПередаваемыйТекст);
|
ОписаниеЗапроса.ОтправляемыеТекстовыеДанные.Добавить(ПередаваемыйТекст);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
@@ -414,9 +424,10 @@
|
|||||||
Процедура ПрочитатьDataRaw(Команда)
|
Процедура ПрочитатьDataRaw(Команда)
|
||||||
|
|
||||||
МассивДанных = ЗначениеОпции(Команда, "data-raw");
|
МассивДанных = ЗначениеОпции(Команда, "data-raw");
|
||||||
|
Назначение = НазначениеПередаваемыхДанныхPOST(Команда);
|
||||||
|
|
||||||
Для Каждого Данные Из МассивДанных Цикл
|
Для Каждого Данные Из МассивДанных Цикл
|
||||||
ПередаваемыйТекст = Новый ПередаваемыйТекст(Данные, НазначенияПередаваемыхДанных.ТелоЗапроса);
|
ПередаваемыйТекст = Новый ПередаваемыйТекст(Данные, Назначение);
|
||||||
ОписаниеЗапроса.ОтправляемыеТекстовыеДанные.Добавить(ПередаваемыйТекст);
|
ОписаниеЗапроса.ОтправляемыеТекстовыеДанные.Добавить(ПередаваемыйТекст);
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
@@ -425,12 +436,14 @@
|
|||||||
Процедура ПрочитатьDataBinary(Команда)
|
Процедура ПрочитатьDataBinary(Команда)
|
||||||
|
|
||||||
МассивДанных = ЗначениеОпции(Команда, "data-binary");
|
МассивДанных = ЗначениеОпции(Команда, "data-binary");
|
||||||
|
Назначение = НазначениеПередаваемыхДанныхPOST(Команда);
|
||||||
|
|
||||||
Для Каждого ИмяФайла Из МассивДанных Цикл
|
Для Каждого ИмяФайла Из МассивДанных Цикл
|
||||||
Если Лев(ИмяФайла, 1) = "@" Тогда
|
Если Лев(ИмяФайла, 1) = "@" Тогда
|
||||||
ИмяФайла = Сред(ИмяФайла, 2);
|
ИмяФайла = Сред(ИмяФайла, 2);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ПередаваемыйФайл = Новый ПередаваемыйФайл(ИмяФайла, НазначенияПередаваемыхДанных.ТелоЗапроса);
|
ПередаваемыйФайл = Новый ПередаваемыйФайл(ИмяФайла, Назначение);
|
||||||
ОписаниеЗапроса.Файлы.Добавить(ПередаваемыйФайл);
|
ОписаниеЗапроса.Файлы.Добавить(ПередаваемыйФайл);
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
@@ -439,6 +452,8 @@
|
|||||||
Процедура ПрочитатьDataUrlencode(Команда)
|
Процедура ПрочитатьDataUrlencode(Команда)
|
||||||
|
|
||||||
МассивДанных = ЗначениеОпции(Команда, "data-urlencode");
|
МассивДанных = ЗначениеОпции(Команда, "data-urlencode");
|
||||||
|
Назначение = НазначениеПередаваемыхДанныхPOST(Команда);
|
||||||
|
|
||||||
Для Каждого Данные Из МассивДанных Цикл
|
Для Каждого Данные Из МассивДанных Цикл
|
||||||
ПозицияРавенства = СтрНайти(Данные, "=");
|
ПозицияРавенства = СтрНайти(Данные, "=");
|
||||||
ПозицияСобачки = СтрНайти(Данные, "@");
|
ПозицияСобачки = СтрНайти(Данные, "@");
|
||||||
@@ -451,13 +466,13 @@
|
|||||||
Значение = СтрШаблон("%1=%2", Ключ, Значение);
|
Значение = СтрШаблон("%1=%2", Ключ, Значение);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ПередаваемыйТекст = Новый ПередаваемыйТекст(Значение, НазначенияПередаваемыхДанных.ТелоЗапроса);
|
ПередаваемыйТекст = Новый ПередаваемыйТекст(Значение, Назначение);
|
||||||
ОписаниеЗапроса.ОтправляемыеТекстовыеДанные.Добавить(ПередаваемыйТекст);
|
ОписаниеЗапроса.ОтправляемыеТекстовыеДанные.Добавить(ПередаваемыйТекст);
|
||||||
ИначеЕсли ПозицияСобачки > 0 Тогда
|
ИначеЕсли ПозицияСобачки > 0 Тогда
|
||||||
Ключ = Сред(Данные, 1, ПозицияСобачки - 1);
|
Ключ = Сред(Данные, 1, ПозицияСобачки - 1);
|
||||||
ИмяФайла = СокрЛП(Сред(Данные, ПозицияСобачки + 1));
|
ИмяФайла = СокрЛП(Сред(Данные, ПозицияСобачки + 1));
|
||||||
|
|
||||||
ПередаваемыйФайл = Новый ПередаваемыйФайл(ИмяФайла, НазначенияПередаваемыхДанных.ТелоЗапроса);
|
ПередаваемыйФайл = Новый ПередаваемыйФайл(ИмяФайла, Назначение);
|
||||||
ПередаваемыйФайл.Ключ = Ключ;
|
ПередаваемыйФайл.Ключ = Ключ;
|
||||||
ПередаваемыйФайл.ПрочитатьСодержимое = Истина;
|
ПередаваемыйФайл.ПрочитатьСодержимое = Истина;
|
||||||
ПередаваемыйФайл.КодироватьСодержимое = Истина;
|
ПередаваемыйФайл.КодироватьСодержимое = Истина;
|
||||||
@@ -465,7 +480,7 @@
|
|||||||
ОписаниеЗапроса.Файлы.Добавить(ПередаваемыйФайл);
|
ОписаниеЗапроса.Файлы.Добавить(ПередаваемыйФайл);
|
||||||
Иначе
|
Иначе
|
||||||
Значение = КодироватьСтроку(Данные, СпособКодированияСтроки.URLВКодировкеURL);
|
Значение = КодироватьСтроку(Данные, СпособКодированияСтроки.URLВКодировкеURL);
|
||||||
ПередаваемыйТекст = Новый ПередаваемыйТекст(Значение, НазначенияПередаваемыхДанных.ТелоЗапроса);
|
ПередаваемыйТекст = Новый ПередаваемыйТекст(Значение, Назначение);
|
||||||
ОписаниеЗапроса.ОтправляемыеТекстовыеДанные.Добавить(ПередаваемыйТекст);
|
ОписаниеЗапроса.ОтправляемыеТекстовыеДанные.Добавить(ПередаваемыйТекст);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
@@ -518,19 +533,20 @@
|
|||||||
Процедура ПрочитатьОпициюJson(Команда)
|
Процедура ПрочитатьОпициюJson(Команда)
|
||||||
|
|
||||||
МассивДанных = ЗначениеОпции(Команда, "json");
|
МассивДанных = ЗначениеОпции(Команда, "json");
|
||||||
|
Назначение = НазначениеПередаваемыхДанныхPOST(Команда);
|
||||||
|
|
||||||
Для Каждого Данные Из МассивДанных Цикл
|
Для Каждого Данные Из МассивДанных Цикл
|
||||||
|
|
||||||
Если Лев(Данные, 1) = "@" Тогда
|
Если Лев(Данные, 1) = "@" Тогда
|
||||||
ИмяФайла = Сред(Данные, 2);
|
ИмяФайла = Сред(Данные, 2);
|
||||||
|
|
||||||
ПередаваемыйФайл = Новый ПередаваемыйФайл(ИмяФайла, НазначенияПередаваемыхДанных.ТелоЗапроса);
|
ПередаваемыйФайл = Новый ПередаваемыйФайл(ИмяФайла, Назначение);
|
||||||
ПередаваемыйФайл.ПрочитатьСодержимое = Истина;
|
ПередаваемыйФайл.ПрочитатьСодержимое = Истина;
|
||||||
ПередаваемыйФайл.РазделительТелаЗапроса = "";
|
ПередаваемыйФайл.РазделительТелаЗапроса = "";
|
||||||
|
|
||||||
ОписаниеЗапроса.Файлы.Добавить(ПередаваемыйФайл);
|
ОписаниеЗапроса.Файлы.Добавить(ПередаваемыйФайл);
|
||||||
Иначе
|
Иначе
|
||||||
ПередаваемыйТекст = Новый ПередаваемыйТекст(Данные, НазначенияПередаваемыхДанных.ТелоЗапроса);
|
ПередаваемыйТекст = Новый ПередаваемыйТекст(Данные, Назначение);
|
||||||
ПередаваемыйТекст.РазделительТелаЗапроса = "";
|
ПередаваемыйТекст.РазделительТелаЗапроса = "";
|
||||||
ОписаниеЗапроса.ОтправляемыеТекстовыеДанные.Добавить(ПередаваемыйТекст);
|
ОписаниеЗапроса.ОтправляемыеТекстовыеДанные.Добавить(ПередаваемыйТекст);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
@@ -539,12 +555,6 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
Процедура ПрочитатьПризнакПередачиОтправляемыхДанныхВСтрокуЗапроса(Команда)
|
|
||||||
|
|
||||||
ОписаниеЗапроса.ПередаватьОтправляемыеДанныеВСтрокуЗапроса = ЗначениеОпции(Команда, "get");
|
|
||||||
|
|
||||||
КонецПроцедуры
|
|
||||||
|
|
||||||
Процедура ПрочитатьСертификатКлиента(Команда)
|
Процедура ПрочитатьСертификатКлиента(Команда)
|
||||||
|
|
||||||
СертификатКлиента = ПоследнееЗначениеОпции(Команда, "E");
|
СертификатКлиента = ПоследнееЗначениеОпции(Команда, "E");
|
||||||
@@ -720,6 +730,14 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Функция НазначениеПередаваемыхДанныхPOST(Команда)
|
||||||
|
Если ЗначениеОпции(Команда, "get") = Истина Тогда
|
||||||
|
Возврат НазначенияПередаваемыхДанных.СтрокаЗапроса;
|
||||||
|
Иначе
|
||||||
|
Возврат НазначенияПередаваемыхДанных.ТелоЗапроса;
|
||||||
|
КонецЕсли;
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
Функция СоздатьКонсольноеПриложение(ВключатьПоддерживаемые = Истина, ВключатьНеподдерживаемые = Истина)
|
Функция СоздатьКонсольноеПриложение(ВключатьПоддерживаемые = Истина, ВключатьНеподдерживаемые = Истина)
|
||||||
|
|
||||||
Приложение = Новый КонсольноеПриложение("curl", "", ЭтотОбъект);
|
Приложение = Новый КонсольноеПриложение("curl", "", ЭтотОбъект);
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
Перем АдресаРесурсов Экспорт; // Массив из Структура
|
Перем АдресаРесурсов Экспорт; // Массив из Структура
|
||||||
// - URL - Строка - Адрес ресурса
|
// - URL - Строка - Адрес ресурса
|
||||||
|
// - Метод - Строка - Метод
|
||||||
// - ИмяВыходногоФайла - Строка - Имя выходного файла
|
// - ИмяВыходногоФайла - Строка - Имя выходного файла
|
||||||
|
// - Файлы - Массив из см. ПередаваемыйФайл - Файлы
|
||||||
Перем Заголовки Экспорт; // Соответствие из КлючИЗначение
|
Перем Заголовки Экспорт; // Соответствие из КлючИЗначение
|
||||||
Перем Метод Экспорт; // Строка
|
|
||||||
Перем ИмяПользователя Экспорт; // Строка
|
Перем ИмяПользователя Экспорт; // Строка
|
||||||
Перем ПарольПользователя Экспорт; // Строка
|
Перем ПарольПользователя Экспорт; // Строка
|
||||||
Перем ОтправляемыеТекстовыеДанные Экспорт; // Массив из ПередаваемыйТекст
|
Перем ОтправляемыеТекстовыеДанные Экспорт; // Массив из ПередаваемыйТекст
|
||||||
Перем Файлы Экспорт; // Массив из см. ПередаваемыйФайл
|
Перем Файлы Экспорт; // Массив из см. ПередаваемыйФайл
|
||||||
Перем ПередаватьОтправляемыеДанныеВСтрокуЗапроса Экспорт; // Булево
|
|
||||||
Перем ИмяФайлаСертификатаКлиента Экспорт; // Строка
|
Перем ИмяФайлаСертификатаКлиента Экспорт; // Строка
|
||||||
Перем ПарольСертификатаКлиента Экспорт; // Строка
|
Перем ПарольСертификатаКлиента Экспорт; // Строка
|
||||||
Перем ИспользоватьСертификатыУЦИзХранилищаОС Экспорт; // Булево
|
Перем ИспользоватьСертификатыУЦИзХранилищаОС Экспорт; // Булево
|
||||||
@@ -30,12 +30,10 @@
|
|||||||
Процедура ПриСозданииОбъекта()
|
Процедура ПриСозданииОбъекта()
|
||||||
АдресаРесурсов = Новый Массив;
|
АдресаРесурсов = Новый Массив;
|
||||||
Заголовки = Новый Соответствие();
|
Заголовки = Новый Соответствие();
|
||||||
Метод = "GET";
|
|
||||||
ИмяПользователя = "";
|
ИмяПользователя = "";
|
||||||
ПарольПользователя = "";
|
ПарольПользователя = "";
|
||||||
ОтправляемыеТекстовыеДанные = Новый Массив;
|
ОтправляемыеТекстовыеДанные = Новый Массив;
|
||||||
Файлы = Новый Массив;
|
Файлы = Новый Массив;
|
||||||
ПередаватьОтправляемыеДанныеВСтрокуЗапроса = Ложь;
|
|
||||||
ИмяФайлаСертификатаКлиента = "";
|
ИмяФайлаСертификатаКлиента = "";
|
||||||
ПарольСертификатаКлиента = "";
|
ПарольСертификатаКлиента = "";
|
||||||
ИспользоватьСертификатыУЦИзХранилищаОС = Ложь;
|
ИспользоватьСертификатыУЦИзХранилищаОС = Ложь;
|
||||||
@@ -62,6 +60,7 @@
|
|||||||
Функция НовоеОписаниеРесурса()
|
Функция НовоеОписаниеРесурса()
|
||||||
Описание = Новый Структура();
|
Описание = Новый Структура();
|
||||||
Описание.Вставить("URL", "");
|
Описание.Вставить("URL", "");
|
||||||
|
Описание.Вставить("Метод", "");
|
||||||
Описание.Вставить("ИмяВыходногоФайла", "");
|
Описание.Вставить("ИмяВыходногоФайла", "");
|
||||||
Описание.Вставить("Файлы", Новый Массив());
|
Описание.Вставить("Файлы", Новый Массив());
|
||||||
Возврат Описание;
|
Возврат Описание;
|
||||||
|
|||||||
@@ -20,6 +20,8 @@
|
|||||||
СписокТестов.Добавить("ТестДолжен_ПроверитьПередачуФайла");
|
СписокТестов.Добавить("ТестДолжен_ПроверитьПередачуФайла");
|
||||||
СписокТестов.Добавить("ТестДолжен_ПроверитьПередачуНесколькихФайловПоОдномуURL");
|
СписокТестов.Добавить("ТестДолжен_ПроверитьПередачуНесколькихФайловПоОдномуURL");
|
||||||
СписокТестов.Добавить("ТестДолжен_ПроверитьИгнорированиеПередаваемыхФайловПриПревышенииКоличестваURL");
|
СписокТестов.Добавить("ТестДолжен_ПроверитьИгнорированиеПередаваемыхФайловПриПревышенииКоличестваURL");
|
||||||
|
СписокТестов.Добавить("ТестДолжен_ПроверитьИгнорированиеОпцииGetПриПередачиФайла");
|
||||||
|
СписокТестов.Добавить("ТестДолжен_ПроверитьИспользованиеМетодаPUTиGETДляРазныхURL");
|
||||||
СписокТестов.Добавить("ТестДолжен_ПроверитьНеизменностьПереданногоЗаголовкаContentType");
|
СписокТестов.Добавить("ТестДолжен_ПроверитьНеизменностьПереданногоЗаголовкаContentType");
|
||||||
СписокТестов.Добавить("ТестДолжен_ПроверитьМножественноеИспользованиеUrl");
|
СписокТестов.Добавить("ТестДолжен_ПроверитьМножественноеИспользованиеUrl");
|
||||||
СписокТестов.Добавить("ТестДолжен_ПроверитьПередачуОтправляемыхДанныхВСтрокуЗапроса");
|
СписокТестов.Добавить("ТестДолжен_ПроверитьПередачуОтправляемыхДанныхВСтрокуЗапроса");
|
||||||
@@ -339,6 +341,47 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура ТестДолжен_ПроверитьИгнорированиеОпцииGetПриПередачиФайла() Экспорт
|
||||||
|
|
||||||
|
КонсольнаяКоманда = "curl --upload-file path/to/file --get http://example.com";
|
||||||
|
|
||||||
|
ПрограммныйКод = "Соединение = Новый HTTPСоединение(""example.com"", 80);
|
||||||
|
|HTTPЗапрос = Новый HTTPЗапрос(""/"");
|
||||||
|
|HTTPЗапрос.УстановитьИмяФайлаТела(""path/to/file"");
|
||||||
|
|
|
||||||
|
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""PUT"", HTTPЗапрос);";
|
||||||
|
|
||||||
|
КонвертерКомандыCURL = Новый КонвертерКомандыCURL();
|
||||||
|
Результат = КонвертерКомандыCURL.Конвертировать(КонсольнаяКоманда, Новый ГенераторПрограммногоКода1С());
|
||||||
|
|
||||||
|
Ожидаем.Что(Результат).Равно(ПрограммныйКод);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура ТестДолжен_ПроверитьИспользованиеМетодаPUTиGETДляРазныхURL() Экспорт
|
||||||
|
|
||||||
|
КонсольнаяКоманда = "curl --upload-file path/to/file http://example1.com http://example2.com";
|
||||||
|
|
||||||
|
ПрограммныйКод = "// Запрос 1. http://example1.com
|
||||||
|
|Соединение = Новый HTTPСоединение(""example1.com"", 80);
|
||||||
|
|HTTPЗапрос = Новый HTTPЗапрос(""/"");
|
||||||
|
|HTTPЗапрос.УстановитьИмяФайлаТела(""path/to/file"");
|
||||||
|
|
|
||||||
|
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""PUT"", HTTPЗапрос);
|
||||||
|
|
|
||||||
|
|// Запрос 2. http://example2.com
|
||||||
|
|Соединение = Новый HTTPСоединение(""example2.com"", 80);
|
||||||
|
|HTTPЗапрос = Новый HTTPЗапрос(""/"");
|
||||||
|
|
|
||||||
|
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);";
|
||||||
|
|
||||||
|
КонвертерКомандыCURL = Новый КонвертерКомандыCURL();
|
||||||
|
Результат = КонвертерКомандыCURL.Конвертировать(КонсольнаяКоманда, Новый ГенераторПрограммногоКода1С());
|
||||||
|
|
||||||
|
Ожидаем.Что(Результат).Равно(ПрограммныйКод);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
Процедура ТестДолжен_ПроверитьНеизменностьПереданногоЗаголовкаContentType() Экспорт
|
Процедура ТестДолжен_ПроверитьНеизменностьПереданногоЗаголовкаContentType() Экспорт
|
||||||
|
|
||||||
КонсольнаяКоманда = "curl http://example.com \
|
КонсольнаяКоманда = "curl http://example.com \
|
||||||
|
|||||||
@@ -167,7 +167,7 @@
|
|||||||
Результат = КонвертерКомандыCURL.Конвертировать(КонсольнаяКоманда,, Ошибки);
|
Результат = КонвертерКомандыCURL.Конвертировать(КонсольнаяКоманда,, Ошибки);
|
||||||
|
|
||||||
Ожидаем.Что(Ошибки, "Команда не валидна: " + КонсольнаяКоманда).Заполнено();
|
Ожидаем.Что(Ошибки, "Команда не валидна: " + КонсольнаяКоманда).Заполнено();
|
||||||
Ожидаем.Что(Ошибки[0].Текст).Содержит("Запрещено одновременное использование нескольких HTTP методов:");
|
Ожидаем.Что(Ошибки[0].Текст).Содержит("Запрещено одновременное использование нескольких HTTP методов");
|
||||||
Ожидаем.Что(Ошибки[0].Критичная).ЭтоИстина();
|
Ожидаем.Что(Ошибки[0].Критичная).ЭтоИстина();
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user