mirror of
https://github.com/alei1180/curlone.git
synced 2026-06-21 01:30:38 +02:00
refactor: Использование ЧтениеТекста вместо ТекстовыйДокумента (#134)
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
#Использовать "../../internal"
|
||||
|
||||
Перем Конструктор;
|
||||
Перем Конструктор; // см. КонструкторПрограммногоКода
|
||||
Перем ИсходящиеОшибки; // Массив из Структура:
|
||||
// * Текст - Строка - Текст ошибки
|
||||
// * КритичнаяОшибка - Булево - Признак критичиной ошибки
|
||||
@@ -18,9 +18,9 @@
|
||||
// - ПередаваемыйФайл - см. ПередаваемыйФайл
|
||||
// - ИмяПеременной - Строка
|
||||
Перем ИспользуетсяПрокси; // Булево
|
||||
Перем ТелоЗапросаСтрока; // Строка
|
||||
Перем ЕстьТекстовоеТелоЗапроса; // Булево
|
||||
Перем ВызванМетодПоТекущемуURL; // Булево
|
||||
Перем ТелоЗапросаСтрока; // Строка
|
||||
Перем МетодУстановкиТелаЗапроса; // Строка
|
||||
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
@@ -39,8 +39,7 @@
|
||||
|
||||
ОписаниеЗапроса = Описание;
|
||||
ИспользуетсяПрокси = Ложь;
|
||||
ЕстьТекстовоеТелоЗапроса = Ложь;
|
||||
ТелоЗапросаСтрока = "";
|
||||
|
||||
ВызванМетодПоТекущемуURL = Ложь;
|
||||
ПрочитанныеФайлы.Очистить();
|
||||
|
||||
@@ -52,9 +51,11 @@
|
||||
|
||||
Конструктор = Новый КонструкторПрограммногоКода();
|
||||
|
||||
ОпределитьМетодУстановкиТелаЗапроса();
|
||||
|
||||
ВывестиЗаголовки();
|
||||
ВывестиЧтениеФайлов();
|
||||
ВывестиИнициализациюТекстовогоТелаЗапроса();
|
||||
ДобавитьЧтениеФайлов();
|
||||
ДобавитьДанныеЗапроса();
|
||||
ВывестиЗащищенноеСоединение();
|
||||
ВывестиИнициализациюПрокси();
|
||||
|
||||
@@ -74,11 +75,11 @@
|
||||
|
||||
Если ОбщегоНазначения.ЭтоHTTP(СтруктураURL.Схема) Тогда
|
||||
ВывестиHTTPСоединение(СтруктураURL);
|
||||
ВывестиВызовHTTPМетодаДляКаждогоФайла(ОписаниеРесурса);
|
||||
ДобавитьПоследовательнуюОтправкуФайлов(ОписаниеРесурса);
|
||||
|
||||
Если Не ВызванМетодПоТекущемуURL Тогда
|
||||
ВывестиHTTPЗапрос(СтруктураURL);
|
||||
ВывестиУстановкуТелаЗапроса(ОписаниеРесурса);
|
||||
ДобавитьУстановкуТелаЗапроса(ОписаниеРесурса);
|
||||
ВывестиВызовHTTPМетода(ОписаниеРесурса);
|
||||
КонецЕсли;
|
||||
ИначеЕсли ОбщегоНазначения.ЭтоFTP(СтруктураURL.Схема) Тогда
|
||||
@@ -122,10 +123,8 @@
|
||||
ИмяПараметраПрокси = "Прокси";
|
||||
ИмяПараметраТелоЗапросаСтрока = "ТелоЗапроса";
|
||||
|
||||
ПрочитанныеФайлы = Новый Массив;
|
||||
ПрочитанныеФайлы = Новый Массив();
|
||||
ИспользуетсяПрокси = Ложь;
|
||||
ЕстьТекстовоеТелоЗапроса = Ложь;
|
||||
ТелоЗапросаСтрока = "";
|
||||
ВызванМетодПоТекущемуURL = Ложь;
|
||||
|
||||
КонецПроцедуры
|
||||
@@ -319,61 +318,6 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ВывестиЧтениеФайлов()
|
||||
|
||||
ПрочитанныеФайлы.Очистить();
|
||||
|
||||
ТребуетсяПрочитатьФайлыТелаЗапроса = ТребуетсяПрочитатьФайлыТелаЗапроса();
|
||||
|
||||
НомерФайла = 1;
|
||||
Для Каждого ПередаваемыйФайл Из ОписаниеЗапроса.Файлы Цикл
|
||||
|
||||
Если Не (ПередаваемыйФайл.ПрочитатьСодержимое
|
||||
Или ПередаваемыйФайл.Назначение = НазначенияПередаваемыхДанных.СтрокаЗапроса) Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Если ПередаваемыйФайл.Назначение = НазначенияПередаваемыхДанных.ТелоЗапроса
|
||||
И Не ТребуетсяПрочитатьФайлыТелаЗапроса Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
ИмяПеременной = "ТекстовыеДанныеИзФайла_" + Формат(НомерФайла, "ЧГ=");
|
||||
|
||||
Конструктор.ДобавитьПустуюСтроку();
|
||||
|
||||
Шаблон = "ТекстовыйДокумент = Новый ТекстовыйДокумент();
|
||||
|ТекстовыйДокумент.Прочитать(%2);
|
||||
|%1 = ТекстовыйДокумент.ПолучитьТекст();";
|
||||
|
||||
Если ПередаваемыйФайл.УдалятьПереносыСтрок Тогда
|
||||
Шаблон = Шаблон + "
|
||||
|%1 = СтрЗаменить(%1, Символы.ПС, """");
|
||||
|%1 = СтрЗаменить(%1, Символы.ВК, """");";
|
||||
КонецЕсли;
|
||||
|
||||
Если ПередаваемыйФайл.КодироватьСодержимое Тогда
|
||||
Шаблон = Шаблон + "
|
||||
|%1 = КодироватьСтроку(%1, СпособКодированияСтроки.URLВКодировкеURL);";
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(ПередаваемыйФайл.Ключ) Тогда
|
||||
Шаблон = Шаблон + "
|
||||
|%1 = """ + ПередаваемыйФайл.Ключ + "="" + %1;";
|
||||
КонецЕсли;
|
||||
|
||||
Конструктор.ДобавитьСтроку(Шаблон,
|
||||
ИмяПеременной,
|
||||
Конструктор.ПараметрВСтроку(ПередаваемыйФайл.ИмяФайла));
|
||||
|
||||
ПрочитанныйФайл = Новый Структура("ПередаваемыйФайл, ИмяПеременной", ПередаваемыйФайл, ИмяПеременной);
|
||||
ПрочитанныеФайлы.Добавить(ПрочитанныйФайл);
|
||||
|
||||
НомерФайла = НомерФайла + 1;
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ВывестиHTTPЗапрос(СтруктураURL)
|
||||
|
||||
ПараметрыФункции = Новый Массив;
|
||||
@@ -462,71 +406,57 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ВывестиИнициализациюТекстовогоТелаЗапроса()
|
||||
|
||||
ЭлементыТелаЗапросаДляВывода = Новый Массив;
|
||||
КонкатенацияСПереносомСтрокиИРазделителя = "
|
||||
| + ""%1"" + ";
|
||||
КонкатенацияСПереносомСтроки = "
|
||||
| + ";
|
||||
Процедура ДобавитьЧтениеФайлов()
|
||||
|
||||
ОтправляемаяСтрока = "";
|
||||
Для Каждого ПередаваемыйТекст Из ОписаниеЗапроса.ОтправляемыеТекстовыеДанные Цикл
|
||||
Если ПередаваемыйТекст.Назначение = НазначенияПередаваемыхДанных.ТелоЗапроса Тогда
|
||||
ОтправляемаяСтрока = ОтправляемаяСтрока
|
||||
+ ?(ОтправляемаяСтрока = "", "", ПередаваемыйТекст.РазделительТелаЗапроса)
|
||||
+ ПередаваемыйТекст.Значение;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Если ЗначениеЗаполнено(ОтправляемаяСтрока) Тогда
|
||||
ЭлементыТелаЗапросаДляВывода.Добавить(Конструктор.ПараметрВСтроку(ОтправляемаяСтрока));
|
||||
КонецЕсли;
|
||||
ТребуетсяЧтениеФайловТелаЗапроса = Не МетодУстановкиТелаЗапроса = "ИзФайла";
|
||||
|
||||
Для Каждого ПрочитанныйФайл Из ПрочитанныеФайлы Цикл
|
||||
Если ПрочитанныйФайл.ПередаваемыйФайл.Назначение = НазначенияПередаваемыхДанных.ТелоЗапроса Тогда
|
||||
Если ЭлементыТелаЗапросаДляВывода.Количество() Тогда
|
||||
Если Не ПустаяСтрока(ПрочитанныйФайл.ПередаваемыйФайл.РазделительТелаЗапроса) Тогда
|
||||
ЭлементыТелаЗапросаДляВывода.Добавить(
|
||||
СтрШаблон(КонкатенацияСПереносомСтрокиИРазделителя, ПрочитанныйФайл.ПередаваемыйФайл.РазделительТелаЗапроса)
|
||||
+ ПрочитанныйФайл.ИмяПеременной);
|
||||
Иначе
|
||||
ЭлементыТелаЗапросаДляВывода.Добавить(КонкатенацияСПереносомСтроки + ПрочитанныйФайл.ИмяПеременной);
|
||||
КонецЕсли;
|
||||
Иначе
|
||||
ЭлементыТелаЗапросаДляВывода.Добавить(ПрочитанныйФайл.ИмяПеременной);
|
||||
КонецЕсли;
|
||||
ФайлыДляЧтения = Новый Массив();
|
||||
Для Каждого ПередаваемыйФайл Из ОписаниеЗапроса.Файлы Цикл
|
||||
|
||||
Если Не (ПередаваемыйФайл.ПрочитатьСодержимое
|
||||
Или ПередаваемыйФайл.Назначение = НазначенияПередаваемыхДанных.СтрокаЗапроса) Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Если ПередаваемыйФайл.Назначение = НазначенияПередаваемыхДанных.ТелоЗапроса
|
||||
И Не ТребуетсяЧтениеФайловТелаЗапроса Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
ФайлыДляЧтения.Добавить(ПередаваемыйФайл);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КоличествоЭлементов = ЭлементыТелаЗапросаДляВывода.Количество();
|
||||
Если КоличествоЭлементов = 0 Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
Код = УниверсальныеБлокиКода.ЧтениеТекстовыхФайлов(ФайлыДляЧтения, ПрочитанныеФайлы);
|
||||
|
||||
ЕстьТекстовоеТелоЗапроса = Истина;
|
||||
|
||||
Если КоличествоЭлементов = 1 Тогда
|
||||
ТелоЗапросаСтрока = ЭлементыТелаЗапросаДляВывода[0];
|
||||
Иначе
|
||||
Если Не ПустаяСтрока(Код) Тогда
|
||||
Конструктор
|
||||
.ДобавитьПустуюСтроку()
|
||||
.ДобавитьСтроку("%1 = %2;",
|
||||
ИмяПараметраТелоЗапросаСтрока,
|
||||
СтрСоединить(ЭлементыТелаЗапросаДляВывода));
|
||||
.ДобавитьСтроку(Код);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ДобавитьДанныеЗапроса()
|
||||
|
||||
Процедура ВывестиУстановкуТелаЗапроса(ОписаниеРесурса)
|
||||
ТелоЗапросаСтрока = "";
|
||||
ТелоЗапроса = УниверсальныеБлокиКода.СборкаТелаЗапроса(
|
||||
ОписаниеЗапроса.ОтправляемыеТекстовыеДанные,
|
||||
ПрочитанныеФайлы);
|
||||
|
||||
ВывестиУстановкуТелаЗапросаТекстовымиДанными();
|
||||
ВывестиУстановкуТелаЗапросаИзФайла(ОписаниеРесурса);
|
||||
Если ЗначениеЗаполнено(ТелоЗапроса) Тогда
|
||||
Если СтрЧислоСтрок(ТелоЗапроса) = 1 Тогда
|
||||
ТелоЗапросаСтрока = ТелоЗапроса;
|
||||
Иначе
|
||||
Конструктор
|
||||
.ДобавитьПустуюСтроку()
|
||||
.ДобавитьСтроку("%1 = %2;", ИмяПараметраТелоЗапросаСтрока, ТелоЗапроса);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ВывестиВызовHTTPМетодаДляКаждогоФайла(ОписаниеРесурса)
|
||||
Процедура ДобавитьПоследовательнуюОтправкуФайлов(ОписаниеРесурса)
|
||||
|
||||
ДлинаИмениФайлаВКомментарии = 100;
|
||||
|
||||
@@ -575,9 +505,16 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ВывестиУстановкуТелаЗапросаТекстовымиДанными()
|
||||
Процедура ДобавитьУстановкуТелаЗапроса(ОписаниеРесурса)
|
||||
|
||||
ДобавитьУстановкуТелаЗапросаТекстовымиДанными();
|
||||
ДобавитьУстановкуТелаЗапросаИзФайла(ОписаниеРесурса);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ДобавитьУстановкуТелаЗапросаТекстовымиДанными()
|
||||
|
||||
Если Не ЕстьТекстовоеТелоЗапроса Тогда
|
||||
Если Не МетодУстановкиТелаЗапроса = "ИзСтроки" Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -587,7 +524,11 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ВывестиУстановкуТелаЗапросаИзФайла(ОписаниеРесурса)
|
||||
Процедура ДобавитьУстановкуТелаЗапросаИзФайла(ОписаниеРесурса)
|
||||
|
||||
Если Не МетодУстановкиТелаЗапроса = "ИзФайла" Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Файлы = Новый Массив();
|
||||
ОбщегоНазначения.ДополнитьМассив(Файлы, ОписаниеЗапроса.Файлы);
|
||||
@@ -763,7 +704,7 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ТребуетсяПрочитатьФайлыТелаЗапроса()
|
||||
Процедура ОпределитьМетодУстановкиТелаЗапроса()
|
||||
|
||||
КоличествоФайлов = 0;
|
||||
Для Каждого ПередаваемыйФайл Из ОписаниеЗапроса.Файлы Цикл
|
||||
@@ -781,13 +722,14 @@
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Если КоличествоФайлов <= 1
|
||||
И Не ЕстьТекстовоеТелоЗапроса Тогда
|
||||
Возврат Ложь;
|
||||
Если КоличествоФайлов > 1 Или ЕстьТекстовоеТелоЗапроса Тогда
|
||||
МетодУстановкиТелаЗапроса = "ИзСтроки";
|
||||
ИначеЕсли КоличествоФайлов = 1 И Не ЕстьТекстовоеТелоЗапроса Тогда
|
||||
МетодУстановкиТелаЗапроса = "ИзФайла";
|
||||
Иначе
|
||||
МетодУстановкиТелаЗапроса = "";
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Истина;
|
||||
|
||||
КонецФункции
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -0,0 +1,127 @@
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
Функция ЧтениеТекстовыхФайлов(Файлы, ПрочитанныеФайлы) Экспорт
|
||||
|
||||
Конструктор = Новый КонструкторПрограммногоКода();
|
||||
|
||||
НомерФайла = 1;
|
||||
Для Каждого ПередаваемыйФайл Из Файлы Цикл
|
||||
|
||||
Если Не (ПередаваемыйФайл.ПрочитатьСодержимое
|
||||
Или ПередаваемыйФайл.Назначение = НазначенияПередаваемыхДанных.СтрокаЗапроса) Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Если НомерФайла > 1 Тогда
|
||||
Конструктор.ДобавитьПустуюСтроку();
|
||||
КонецЕсли;
|
||||
|
||||
Шаблон = "ЧтениеТекста = Новый ЧтениеТекста(%2);
|
||||
|%1 = ЧтениеТекста.Прочитать();";
|
||||
|
||||
Если ПередаваемыйФайл.УдалятьПереносыСтрок Тогда
|
||||
Шаблон = Шаблон + "
|
||||
|%1 = СтрЗаменить(%1, Символы.ПС, """");
|
||||
|%1 = СтрЗаменить(%1, Символы.ВК, """");";
|
||||
КонецЕсли;
|
||||
|
||||
Если ПередаваемыйФайл.КодироватьСодержимое Тогда
|
||||
Шаблон = Шаблон + "
|
||||
|%1 = КодироватьСтроку(%1, СпособКодированияСтроки.URLВКодировкеURL);";
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(ПередаваемыйФайл.Ключ) Тогда
|
||||
Шаблон = Шаблон + "
|
||||
|%1 = """ + ПередаваемыйФайл.Ключ + "="" + %1;";
|
||||
КонецЕсли;
|
||||
|
||||
ИмяПеременной = "ТекстовыеДанныеФайла_" + Формат(НомерФайла, "ЧГ=");
|
||||
|
||||
Конструктор.ДобавитьСтроку(Шаблон,
|
||||
ИмяПеременной,
|
||||
Конструктор.ПараметрВСтроку(ПередаваемыйФайл.ИмяФайла));
|
||||
|
||||
ПрочитанныйФайл = Новый Структура();
|
||||
ПрочитанныйФайл.Вставить("ПередаваемыйФайл", ПередаваемыйФайл);
|
||||
ПрочитанныйФайл.Вставить("ИмяПеременной", ИмяПеременной);
|
||||
|
||||
ПрочитанныеФайлы.Добавить(ПрочитанныйФайл);
|
||||
|
||||
НомерФайла = НомерФайла + 1;
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Конструктор.ПолучитьРезультат();
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция СборкаТелаЗапроса(ТекстовыеДанные, ПрочитанныеФайлы) Экспорт
|
||||
|
||||
Конструктор = Новый КонструкторПрограммногоКода();
|
||||
ТелоЗапроса = Новый Массив();
|
||||
|
||||
КонкатенацияСПереносомСтрокиИРазделителя = "
|
||||
| + ""%1"" + %2";
|
||||
КонкатенацияСПереносомСтроки = "
|
||||
| + %1";
|
||||
|
||||
НуженРазделитель = Ложь;
|
||||
МассивТекстовыхДанных = Новый Массив();
|
||||
Для Каждого ПередаваемыйТекст Из ТекстовыеДанные Цикл
|
||||
Если Не ПередаваемыйТекст.Назначение = НазначенияПередаваемыхДанных.ТелоЗапроса Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Разделитель = ПередаваемыйТекст.РазделительТелаЗапроса;
|
||||
Если НуженРазделитель И Не ПустаяСтрока(Разделитель) Тогда
|
||||
МассивТекстовыхДанных.Добавить(Разделитель);
|
||||
КонецЕсли;
|
||||
|
||||
МассивТекстовыхДанных.Добавить(ПередаваемыйТекст.Значение);
|
||||
|
||||
НуженРазделитель = Истина;
|
||||
КонецЦикла;
|
||||
|
||||
Если МассивТекстовыхДанных.Количество() Тогда
|
||||
ТелоЗапроса.Добавить(Конструктор.ПараметрВСтроку(СтрСоединить(МассивТекстовыхДанных)));
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого ПрочитанныйФайл Из ПрочитанныеФайлы Цикл
|
||||
|
||||
ПередаваемыйФайл = ПрочитанныйФайл.ПередаваемыйФайл;
|
||||
|
||||
Если Не ПередаваемыйФайл.Назначение = НазначенияПередаваемыхДанных.ТелоЗапроса Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Разделитель = ПередаваемыйФайл.РазделительТелаЗапроса;
|
||||
Если НуженРазделитель Тогда
|
||||
|
||||
Если Не ПустаяСтрока(Разделитель) Тогда
|
||||
|
||||
Текст = СтрШаблон(КонкатенацияСПереносомСтрокиИРазделителя,
|
||||
ПередаваемыйФайл.РазделительТелаЗапроса,
|
||||
ПрочитанныйФайл.ИмяПеременной);
|
||||
|
||||
ТелоЗапроса.Добавить(Текст);
|
||||
|
||||
Иначе
|
||||
|
||||
Текст = СтрШаблон(КонкатенацияСПереносомСтроки, ПрочитанныйФайл.ИмяПеременной);
|
||||
ТелоЗапроса.Добавить(Текст);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Иначе
|
||||
|
||||
ТелоЗапроса.Добавить(ПрочитанныйФайл.ИмяПеременной);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
НуженРазделитель = Истина;
|
||||
КонецЦикла;
|
||||
|
||||
Возврат СтрСоединить(ТелоЗапроса);
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
@@ -89,7 +89,7 @@
|
||||
КонецПроцедуры
|
||||
|
||||
&Тест
|
||||
Процедура ТестДолжен_ПроверитьПередачуТекстовыхДанных() Экспорт
|
||||
Процедура ТестДолжен_ПроверитьПередачуТекстовыхДанныхИзАргументовИФайлов() Экспорт
|
||||
|
||||
КонсольнаяКоманда = "curl http://example.com \
|
||||
| -d param1=value1 \
|
||||
@@ -104,26 +104,23 @@
|
||||
ПрограммныйКод = "Заголовки = Новый Соответствие();
|
||||
|Заголовки.Вставить(""Content-Type"", ""application/x-www-form-urlencoded"");
|
||||
|
|
||||
|ТекстовыйДокумент = Новый ТекстовыйДокумент();
|
||||
|ТекстовыйДокумент.Прочитать(""path-to-file1"");
|
||||
|ТекстовыеДанныеИзФайла_1 = ТекстовыйДокумент.ПолучитьТекст();
|
||||
|ТекстовыеДанныеИзФайла_1 = СтрЗаменить(ТекстовыеДанныеИзФайла_1, Символы.ПС, """");
|
||||
|ТекстовыеДанныеИзФайла_1 = СтрЗаменить(ТекстовыеДанныеИзФайла_1, Символы.ВК, """");
|
||||
|ЧтениеТекста = Новый ЧтениеТекста(""path-to-file1"");
|
||||
|ТекстовыеДанныеФайла_1 = ЧтениеТекста.Прочитать();
|
||||
|ТекстовыеДанныеФайла_1 = СтрЗаменить(ТекстовыеДанныеФайла_1, Символы.ПС, """");
|
||||
|ТекстовыеДанныеФайла_1 = СтрЗаменить(ТекстовыеДанныеФайла_1, Символы.ВК, """");
|
||||
|
|
||||
|ТекстовыйДокумент = Новый ТекстовыйДокумент();
|
||||
|ТекстовыйДокумент.Прочитать(""path-to-file2"");
|
||||
|ТекстовыеДанныеИзФайла_2 = ТекстовыйДокумент.ПолучитьТекст();
|
||||
|ТекстовыеДанныеИзФайла_2 = СтрЗаменить(ТекстовыеДанныеИзФайла_2, Символы.ПС, """");
|
||||
|ТекстовыеДанныеИзФайла_2 = СтрЗаменить(ТекстовыеДанныеИзФайла_2, Символы.ВК, """");
|
||||
|ЧтениеТекста = Новый ЧтениеТекста(""path-to-file2"");
|
||||
|ТекстовыеДанныеФайла_2 = ЧтениеТекста.Прочитать();
|
||||
|ТекстовыеДанныеФайла_2 = СтрЗаменить(ТекстовыеДанныеФайла_2, Символы.ПС, """");
|
||||
|ТекстовыеДанныеФайла_2 = СтрЗаменить(ТекстовыеДанныеФайла_2, Символы.ВК, """");
|
||||
|
|
||||
|ТекстовыйДокумент = Новый ТекстовыйДокумент();
|
||||
|ТекстовыйДокумент.Прочитать(""path-to-file3"");
|
||||
|ТекстовыеДанныеИзФайла_3 = ТекстовыйДокумент.ПолучитьТекст();
|
||||
|ЧтениеТекста = Новый ЧтениеТекста(""path-to-file3"");
|
||||
|ТекстовыеДанныеФайла_3 = ЧтениеТекста.Прочитать();
|
||||
|
|
||||
|ТелоЗапроса = ""param1=value1&парам2=значение2¶m3=value3&@at@at@¶m4=value4""
|
||||
| + ""&"" + ТекстовыеДанныеИзФайла_1
|
||||
| + ""&"" + ТекстовыеДанныеИзФайла_2
|
||||
| + ""&"" + ТекстовыеДанныеИзФайла_3;
|
||||
| + ""&"" + ТекстовыеДанныеФайла_1
|
||||
| + ""&"" + ТекстовыеДанныеФайла_2
|
||||
| + ""&"" + ТекстовыеДанныеФайла_3;
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 80);
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"", Заголовки);
|
||||
@@ -148,14 +145,13 @@
|
||||
ПрограммныйКод = "Заголовки = Новый Соответствие();
|
||||
|Заголовки.Вставить(""Content-Type"", ""application/x-www-form-urlencoded"");
|
||||
|
|
||||
|ТекстовыйДокумент = Новый ТекстовыйДокумент();
|
||||
|ТекстовыйДокумент.Прочитать(""path-to-file"");
|
||||
|ТекстовыеДанныеИзФайла_1 = ТекстовыйДокумент.ПолучитьТекст();
|
||||
|ТекстовыеДанныеИзФайла_1 = СтрЗаменить(ТекстовыеДанныеИзФайла_1, Символы.ПС, """");
|
||||
|ТекстовыеДанныеИзФайла_1 = СтрЗаменить(ТекстовыеДанныеИзФайла_1, Символы.ВК, """");
|
||||
|ЧтениеТекста = Новый ЧтениеТекста(""path-to-file"");
|
||||
|ТекстовыеДанныеФайла_1 = ЧтениеТекста.Прочитать();
|
||||
|ТекстовыеДанныеФайла_1 = СтрЗаменить(ТекстовыеДанныеФайла_1, Символы.ПС, """");
|
||||
|ТекстовыеДанныеФайла_1 = СтрЗаменить(ТекстовыеДанныеФайла_1, Символы.ВК, """");
|
||||
|
|
||||
|ТелоЗапроса = ""param=value""
|
||||
| + ""&"" + ТекстовыеДанныеИзФайла_1;
|
||||
| + ""&"" + ТекстовыеДанныеФайла_1;
|
||||
|
|
||||
|// Запрос 1. http://example1.com
|
||||
|Соединение = Новый HTTPСоединение(""example1.com"", 80);
|
||||
@@ -209,16 +205,14 @@
|
||||
ПрограммныйКод = "Заголовки = Новый Соответствие();
|
||||
|Заголовки.Вставить(""Content-Type"", ""application/x-www-form-urlencoded"");
|
||||
|
|
||||
|ТекстовыйДокумент = Новый ТекстовыйДокумент();
|
||||
|ТекстовыйДокумент.Прочитать(""path-to-file1"");
|
||||
|ТекстовыеДанныеИзФайла_1 = ТекстовыйДокумент.ПолучитьТекст();
|
||||
|ЧтениеТекста = Новый ЧтениеТекста(""path-to-file1"");
|
||||
|ТекстовыеДанныеФайла_1 = ЧтениеТекста.Прочитать();
|
||||
|
|
||||
|ТекстовыйДокумент = Новый ТекстовыйДокумент();
|
||||
|ТекстовыйДокумент.Прочитать(""path-to-file2"");
|
||||
|ТекстовыеДанныеИзФайла_2 = ТекстовыйДокумент.ПолучитьТекст();
|
||||
|ЧтениеТекста = Новый ЧтениеТекста(""path-to-file2"");
|
||||
|ТекстовыеДанныеФайла_2 = ЧтениеТекста.Прочитать();
|
||||
|
|
||||
|ТелоЗапроса = ТекстовыеДанныеИзФайла_1
|
||||
| + ""&"" + ТекстовыеДанныеИзФайла_2;
|
||||
|ТелоЗапроса = ТекстовыеДанныеФайла_1
|
||||
| + ""&"" + ТекстовыеДанныеФайла_2;
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 80);
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"", Заголовки);
|
||||
@@ -384,29 +378,27 @@
|
||||
&Тест
|
||||
Процедура ТестДолжен_ПроверитьПередачуТекстовыхДанныхСКодированием() Экспорт
|
||||
|
||||
КонсольнаяКоманда = "curl 'http://example.com' \
|
||||
КонсольнаяКоманда = "curl http://example.com \
|
||||
| --data-urlencode name=val \
|
||||
| --data-urlencode =encodethis& \
|
||||
| --data-urlencode '=encodethis&' \
|
||||
| --data-urlencode name@file \
|
||||
| --data-urlencode @fileonly";
|
||||
|
||||
ПрограммныйКод = "Заголовки = Новый Соответствие();
|
||||
|Заголовки.Вставить(""Content-Type"", ""application/x-www-form-urlencoded"");
|
||||
|
|
||||
|ТекстовыйДокумент = Новый ТекстовыйДокумент();
|
||||
|ТекстовыйДокумент.Прочитать(""file"");
|
||||
|ТекстовыеДанныеИзФайла_1 = ТекстовыйДокумент.ПолучитьТекст();
|
||||
|ТекстовыеДанныеИзФайла_1 = КодироватьСтроку(ТекстовыеДанныеИзФайла_1, СпособКодированияСтроки.URLВКодировкеURL);
|
||||
|ТекстовыеДанныеИзФайла_1 = ""name="" + ТекстовыеДанныеИзФайла_1;
|
||||
|ЧтениеТекста = Новый ЧтениеТекста(""file"");
|
||||
|ТекстовыеДанныеФайла_1 = ЧтениеТекста.Прочитать();
|
||||
|ТекстовыеДанныеФайла_1 = КодироватьСтроку(ТекстовыеДанныеФайла_1, СпособКодированияСтроки.URLВКодировкеURL);
|
||||
|ТекстовыеДанныеФайла_1 = ""name="" + ТекстовыеДанныеФайла_1;
|
||||
|
|
||||
|ТекстовыйДокумент = Новый ТекстовыйДокумент();
|
||||
|ТекстовыйДокумент.Прочитать(""fileonly"");
|
||||
|ТекстовыеДанныеИзФайла_2 = ТекстовыйДокумент.ПолучитьТекст();
|
||||
|ТекстовыеДанныеИзФайла_2 = КодироватьСтроку(ТекстовыеДанныеИзФайла_2, СпособКодированияСтроки.URLВКодировкеURL);
|
||||
|ЧтениеТекста = Новый ЧтениеТекста(""fileonly"");
|
||||
|ТекстовыеДанныеФайла_2 = ЧтениеТекста.Прочитать();
|
||||
|ТекстовыеДанныеФайла_2 = КодироватьСтроку(ТекстовыеДанныеФайла_2, СпособКодированияСтроки.URLВКодировкеURL);
|
||||
|
|
||||
|ТелоЗапроса = ""name=val&encodethis%26""
|
||||
| + ""&"" + ТекстовыеДанныеИзФайла_1
|
||||
| + ""&"" + ТекстовыеДанныеИзФайла_2;
|
||||
| + ""&"" + ТекстовыеДанныеФайла_1
|
||||
| + ""&"" + ТекстовыеДанныеФайла_2;
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 80);
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"", Заголовки);
|
||||
@@ -469,16 +461,15 @@
|
||||
| --data 'param2=value2' \
|
||||
| --data @path-to-file";
|
||||
|
||||
ПрограммныйКод = "ТекстовыйДокумент = Новый ТекстовыйДокумент();
|
||||
|ТекстовыйДокумент.Прочитать(""path-to-file"");
|
||||
|ТекстовыеДанныеИзФайла_1 = ТекстовыйДокумент.ПолучитьТекст();
|
||||
|ТекстовыеДанныеИзФайла_1 = СтрЗаменить(ТекстовыеДанныеИзФайла_1, Символы.ПС, """");
|
||||
|ТекстовыеДанныеИзФайла_1 = СтрЗаменить(ТекстовыеДанныеИзФайла_1, Символы.ВК, """");
|
||||
ПрограммныйКод = "ЧтениеТекста = Новый ЧтениеТекста(""path-to-file"");
|
||||
|ТекстовыеДанныеФайла_1 = ЧтениеТекста.Прочитать();
|
||||
|ТекстовыеДанныеФайла_1 = СтрЗаменить(ТекстовыеДанныеФайла_1, Символы.ПС, """");
|
||||
|ТекстовыеДанныеФайла_1 = СтрЗаменить(ТекстовыеДанныеФайла_1, Символы.ВК, """");
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 80);
|
||||
|
|
||||
|АдресРесурса = ""/?param1=value¶m2=value2""
|
||||
| + ""&"" + ТекстовыеДанныеИзФайла_1;
|
||||
| + ""&"" + ТекстовыеДанныеФайла_1;
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса);
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);";
|
||||
@@ -497,16 +488,15 @@
|
||||
| --get \
|
||||
| --data @path-to-file";
|
||||
|
||||
ПрограммныйКод = "ТекстовыйДокумент = Новый ТекстовыйДокумент();
|
||||
|ТекстовыйДокумент.Прочитать(""path-to-file"");
|
||||
|ТекстовыеДанныеИзФайла_1 = ТекстовыйДокумент.ПолучитьТекст();
|
||||
|ТекстовыеДанныеИзФайла_1 = СтрЗаменить(ТекстовыеДанныеИзФайла_1, Символы.ПС, """");
|
||||
|ТекстовыеДанныеИзФайла_1 = СтрЗаменить(ТекстовыеДанныеИзФайла_1, Символы.ВК, """");
|
||||
ПрограммныйКод = "ЧтениеТекста = Новый ЧтениеТекста(""path-to-file"");
|
||||
|ТекстовыеДанныеФайла_1 = ЧтениеТекста.Прочитать();
|
||||
|ТекстовыеДанныеФайла_1 = СтрЗаменить(ТекстовыеДанныеФайла_1, Символы.ПС, """");
|
||||
|ТекстовыеДанныеФайла_1 = СтрЗаменить(ТекстовыеДанныеФайла_1, Символы.ВК, """");
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 80);
|
||||
|
|
||||
|АдресРесурса = ""/?""
|
||||
| + ТекстовыеДанныеИзФайла_1;
|
||||
| + ТекстовыеДанныеФайла_1;
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса);
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);";
|
||||
@@ -527,16 +517,15 @@
|
||||
| --data 'param2=value2' \
|
||||
| --data @path-to-file";
|
||||
|
||||
ПрограммныйКод = "ТекстовыйДокумент = Новый ТекстовыйДокумент();
|
||||
|ТекстовыйДокумент.Прочитать(""path-to-file"");
|
||||
|ТекстовыеДанныеИзФайла_1 = ТекстовыйДокумент.ПолучитьТекст();
|
||||
|ТекстовыеДанныеИзФайла_1 = СтрЗаменить(ТекстовыеДанныеИзФайла_1, Символы.ПС, """");
|
||||
|ТекстовыеДанныеИзФайла_1 = СтрЗаменить(ТекстовыеДанныеИзФайла_1, Символы.ВК, """");
|
||||
ПрограммныйКод = "ЧтениеТекста = Новый ЧтениеТекста(""path-to-file"");
|
||||
|ТекстовыеДанныеФайла_1 = ЧтениеТекста.Прочитать();
|
||||
|ТекстовыеДанныеФайла_1 = СтрЗаменить(ТекстовыеДанныеФайла_1, Символы.ПС, """");
|
||||
|ТекстовыеДанныеФайла_1 = СтрЗаменить(ТекстовыеДанныеФайла_1, Символы.ВК, """");
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 80);
|
||||
|
|
||||
|АдресРесурса = ""/?param3=value3¶m1=value¶m2=value2""
|
||||
| + ""&"" + ТекстовыеДанныеИзФайла_1
|
||||
| + ""&"" + ТекстовыеДанныеФайла_1
|
||||
| + ""#page-1"";
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса);
|
||||
|
|
||||
@@ -789,22 +778,20 @@
|
||||
| --url-query '+name=%20foo' \
|
||||
| --url-query +@not-a-file";
|
||||
|
||||
ПрограммныйКод = "ТекстовыйДокумент = Новый ТекстовыйДокумент();
|
||||
|ТекстовыйДокумент.Прочитать(""file"");
|
||||
|ТекстовыеДанныеИзФайла_1 = ТекстовыйДокумент.ПолучитьТекст();
|
||||
|ТекстовыеДанныеИзФайла_1 = КодироватьСтроку(ТекстовыеДанныеИзФайла_1, СпособКодированияСтроки.URLВКодировкеURL);
|
||||
|ТекстовыеДанныеИзФайла_1 = ""name="" + ТекстовыеДанныеИзФайла_1;
|
||||
ПрограммныйКод = "ЧтениеТекста = Новый ЧтениеТекста(""file"");
|
||||
|ТекстовыеДанныеФайла_1 = ЧтениеТекста.Прочитать();
|
||||
|ТекстовыеДанныеФайла_1 = КодироватьСтроку(ТекстовыеДанныеФайла_1, СпособКодированияСтроки.URLВКодировкеURL);
|
||||
|ТекстовыеДанныеФайла_1 = ""name="" + ТекстовыеДанныеФайла_1;
|
||||
|
|
||||
|ТекстовыйДокумент = Новый ТекстовыйДокумент();
|
||||
|ТекстовыйДокумент.Прочитать(""fileonly"");
|
||||
|ТекстовыеДанныеИзФайла_2 = ТекстовыйДокумент.ПолучитьТекст();
|
||||
|ТекстовыеДанныеИзФайла_2 = КодироватьСтроку(ТекстовыеДанныеИзФайла_2, СпособКодированияСтроки.URLВКодировкеURL);
|
||||
|ЧтениеТекста = Новый ЧтениеТекста(""fileonly"");
|
||||
|ТекстовыеДанныеФайла_2 = ЧтениеТекста.Прочитать();
|
||||
|ТекстовыеДанныеФайла_2 = КодироватьСтроку(ТекстовыеДанныеФайла_2, СпособКодированияСтроки.URLВКодировкеURL);
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 80);
|
||||
|
|
||||
|АдресРесурса = ""/?name=val&encodethis%26&name=%20foo&@not-a-file""
|
||||
| + ""&"" + ТекстовыеДанныеИзФайла_1
|
||||
| + ""&"" + ТекстовыеДанныеИзФайла_2;
|
||||
| + ""&"" + ТекстовыеДанныеФайла_1
|
||||
| + ""&"" + ТекстовыеДанныеФайла_2;
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса);
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);";
|
||||
@@ -821,15 +808,14 @@
|
||||
|
||||
КонсольнаяКоманда = "curl http://example.com --url-query @fileonly";
|
||||
|
||||
ПрограммныйКод = "ТекстовыйДокумент = Новый ТекстовыйДокумент();
|
||||
|ТекстовыйДокумент.Прочитать(""fileonly"");
|
||||
|ТекстовыеДанныеИзФайла_1 = ТекстовыйДокумент.ПолучитьТекст();
|
||||
|ТекстовыеДанныеИзФайла_1 = КодироватьСтроку(ТекстовыеДанныеИзФайла_1, СпособКодированияСтроки.URLВКодировкеURL);
|
||||
ПрограммныйКод = "ЧтениеТекста = Новый ЧтениеТекста(""fileonly"");
|
||||
|ТекстовыеДанныеФайла_1 = ЧтениеТекста.Прочитать();
|
||||
|ТекстовыеДанныеФайла_1 = КодироватьСтроку(ТекстовыеДанныеФайла_1, СпособКодированияСтроки.URLВКодировкеURL);
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 80);
|
||||
|
|
||||
|АдресРесурса = ""/?""
|
||||
| + ТекстовыеДанныеИзФайла_1;
|
||||
| + ТекстовыеДанныеФайла_1;
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса);
|
||||
|
|
||||
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""GET"", HTTPЗапрос);";
|
||||
@@ -1183,16 +1169,14 @@
|
||||
|Заголовки.Вставить(""Content-Type"", ""application/json"");
|
||||
|Заголовки.Вставить(""Accept"", ""application/json"");
|
||||
|
|
||||
|ТекстовыйДокумент = Новый ТекстовыйДокумент();
|
||||
|ТекстовыйДокумент.Прочитать(""path-to-file1"");
|
||||
|ТекстовыеДанныеИзФайла_1 = ТекстовыйДокумент.ПолучитьТекст();
|
||||
|ЧтениеТекста = Новый ЧтениеТекста(""path-to-file1"");
|
||||
|ТекстовыеДанныеФайла_1 = ЧтениеТекста.Прочитать();
|
||||
|
|
||||
|ТекстовыйДокумент = Новый ТекстовыйДокумент();
|
||||
|ТекстовыйДокумент.Прочитать(""path-to-file2"");
|
||||
|ТекстовыеДанныеИзФайла_2 = ТекстовыйДокумент.ПолучитьТекст();
|
||||
|ЧтениеТекста = Новый ЧтениеТекста(""path-to-file2"");
|
||||
|ТекстовыеДанныеФайла_2 = ЧтениеТекста.Прочитать();
|
||||
|
|
||||
|ТелоЗапроса = ТекстовыеДанныеИзФайла_1
|
||||
| + ТекстовыеДанныеИзФайла_2;
|
||||
|ТелоЗапроса = ТекстовыеДанныеФайла_1
|
||||
| + ТекстовыеДанныеФайла_2;
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 80);
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"", Заголовки);
|
||||
@@ -1264,12 +1248,11 @@
|
||||
|Заголовки.Вставить(""Content-Type"", ""application/json"");
|
||||
|Заголовки.Вставить(""Accept"", ""application/json"");
|
||||
|
|
||||
|ТекстовыйДокумент = Новый ТекстовыйДокумент();
|
||||
|ТекстовыйДокумент.Прочитать(""path-to-file"");
|
||||
|ТекстовыеДанныеИзФайла_1 = ТекстовыйДокумент.ПолучитьТекст();
|
||||
|ЧтениеТекста = Новый ЧтениеТекста(""path-to-file"");
|
||||
|ТекстовыеДанныеФайла_1 = ЧтениеТекста.Прочитать();
|
||||
|
|
||||
|ТелоЗапроса = ""{""""drink"""": """"coffe"""", """"size"""": ""
|
||||
| + ТекстовыеДанныеИзФайла_1;
|
||||
| + ТекстовыеДанныеФайла_1;
|
||||
|
|
||||
|Соединение = Новый HTTPСоединение(""example.com"", 80);
|
||||
|HTTPЗапрос = Новый HTTPЗапрос(""/"", Заголовки);
|
||||
|
||||
Reference in New Issue
Block a user