1
0
mirror of https://github.com/alei1180/curlone.git synced 2025-11-23 22:45:05 +02:00

feat: Изменение порядка блоков в сгенерированном коде (#204)

This commit is contained in:
Dmitry Ivanov
2025-03-21 21:56:35 +03:00
committed by GitHub
parent 6238fbb532
commit e636e41160
4 changed files with 642 additions and 653 deletions

View File

@@ -58,10 +58,10 @@
КодЛокализации);
ОпределитьМетодУстановкиТелаЗапроса();
ДобавитьРазделительДанныхMultipart();
ДобавитьЗаголовки();
ДобавитьЧтениеФайлов();
ДобавитьДанныеЗапроса();
ДобавитьРазделительДанныхMultipart();
ДобавитьЗаголовки();
ДобавитьЗащищенноеСоединение();
ДобавитьПрокси();
ДобавитьЗапросы();
@@ -199,7 +199,9 @@
Возврат;
КонецЕсли;
Конструктор.ДобавитьСтроку(
Конструктор
.ДобавитьПустуюСтроку()
.ДобавитьСтроку(
"%1 = СтрЗаменить(Новый УникальныйИдентификатор, ""-"", """");",
ИмяПараметраРазделительДанныхMultipart);

View File

@@ -54,13 +54,13 @@
"Общий, КлючевыеСловаЯзыка, ГенераторПрограммногоКодаКоннекторHTTP",
КодЛокализации);
ДобавитьЗаголовки();
ДобавитьАутентификацию();
ДобавитьПрокси();
ДобавитьЧтениеФайлов();
ДобавитьДанныеЗапроса();
ДобавитьФайлы();
ДобавитьПараметрыЗапроса();
ДобавитьЗаголовки();
ДобавитьАутентификацию();
ДобавитьПрокси();
ДобавитьЗапросы();
Результат = Конструктор.ПолучитьРезультат();
@@ -191,7 +191,9 @@
Состояние.ЕстьЗаголовки = Истина;
Конструктор.ДобавитьСтроку("%1 = Новый Соответствие();", ИмяПараметраЗаголовки);
Конструктор
.ДобавитьПустуюСтроку()
.ДобавитьСтроку("%1 = Новый Соответствие();", ИмяПараметраЗаголовки);
Для Каждого Заголовок Из ОписаниеЗапроса.Заголовки Цикл
@@ -203,10 +205,12 @@
ПараметрыФункции.Добавить(Конструктор.ПараметрВСтроку(Заголовок.Ключ));
ПараметрыФункции.Добавить(Конструктор.ПараметрВСтроку(Заголовок.Значение));
Конструктор.ДобавитьСтроку(
Конструктор
.ДобавитьСтроку(
"%1.Вставить(%2);",
ИмяПараметраЗаголовки,
Конструктор.ПараметрыФункцииВСтроку(ПараметрыФункции));
Конструктор.ПараметрыФункцииВСтроку(ПараметрыФункции)
);
КонецЦикла;

View File

@@ -157,9 +157,6 @@
ПрограммныйКод = "//////////////////////////////////////////////
|// Команда #1.
|
|Заголовки = Новый Соответствие();
|Заголовки.Вставить(""Content-Type"", ""application/x-www-form-urlencoded"");
|
|ЧтениеТекста = Новый ЧтениеТекста(""path-to-file1"");
|ТекстовыеДанныеФайла_1 = ЧтениеТекста.Прочитать();
|ТекстовыеДанныеФайла_1 = СтрЗаменить(ТекстовыеДанныеФайла_1, Символы.ПС, """");
@@ -179,6 +176,9 @@
| + ""&"" + ТекстовыеДанныеФайла_2
| + ""&"" + ТекстовыеДанныеФайла_3;
|
|Заголовки = Новый Соответствие();
|Заголовки.Вставить(""Content-Type"", ""application/x-www-form-urlencoded"");
|
|Соединение = Новый HTTPСоединение(""example1.com"", 80);
|HTTPЗапрос = Новый HTTPЗапрос(""/"", Заголовки);
|HTTPЗапрос.УстановитьТелоИзСтроки(ТелоЗапроса);
@@ -188,13 +188,13 @@
|//////////////////////////////////////////////
|// Команда #2.
|
|Заголовки = Новый Соответствие();
|Заголовки.Вставить(""Content-Type"", ""application/x-www-form-urlencoded"");
|
|ТелоЗапроса = ""{
|| """"key"""": """"value""""
||}"";
|
|Заголовки = Новый Соответствие();
|Заголовки.Вставить(""Content-Type"", ""application/x-www-form-urlencoded"");
|
|Соединение = Новый HTTPСоединение(""example2.com"", 80);
|HTTPЗапрос = Новый HTTPЗапрос(""/"", Заголовки);
|HTTPЗапрос.УстановитьТелоИзСтроки(ТелоЗапроса);
@@ -212,10 +212,7 @@
| -d param=value \
| --data @path-to-file";
ПрограммныйКод = "Заголовки = Новый Соответствие();
|Заголовки.Вставить(""Content-Type"", ""application/x-www-form-urlencoded"");
|
|ЧтениеТекста = Новый ЧтениеТекста(""path-to-file"");
ПрограммныйКод = "ЧтениеТекста = Новый ЧтениеТекста(""path-to-file"");
|ТекстовыеДанныеФайла_1 = ЧтениеТекста.Прочитать();
|ТекстовыеДанныеФайла_1 = СтрЗаменить(ТекстовыеДанныеФайла_1, Символы.ПС, """");
|ТекстовыеДанныеФайла_1 = СтрЗаменить(ТекстовыеДанныеФайла_1, Символы.ВК, """");
@@ -223,6 +220,9 @@
|ТелоЗапроса = ""param=value""
| + ""&"" + ТекстовыеДанныеФайла_1;
|
|Заголовки = Новый Соответствие();
|Заголовки.Вставить(""Content-Type"", ""application/x-www-form-urlencoded"");
|
|// Запрос 1. http://example1.com
|Соединение = Новый HTTPСоединение(""example1.com"", 80);
|HTTPЗапрос = Новый HTTPЗапрос(""/"", Заголовки);
@@ -266,10 +266,7 @@
| --data-binary @path-to-file1 \
| --data-binary @path-to-file2";
ПрограммныйКод = "Заголовки = Новый Соответствие();
|Заголовки.Вставить(""Content-Type"", ""application/x-www-form-urlencoded"");
|
|ЧтениеТекста = Новый ЧтениеТекста(""path-to-file1"");
ПрограммныйКод = "ЧтениеТекста = Новый ЧтениеТекста(""path-to-file1"");
|ТекстовыеДанныеФайла_1 = ЧтениеТекста.Прочитать();
|
|ЧтениеТекста = Новый ЧтениеТекста(""path-to-file2"");
@@ -278,6 +275,9 @@
|ТелоЗапроса = ТекстовыеДанныеФайла_1
| + ""&"" + ТекстовыеДанныеФайла_2;
|
|Заголовки = Новый Соответствие();
|Заголовки.Вставить(""Content-Type"", ""application/x-www-form-urlencoded"");
|
|Соединение = Новый HTTPСоединение(""example.com"", 80);
|HTTPЗапрос = Новый HTTPЗапрос(""/"", Заголовки);
|HTTPЗапрос.УстановитьТелоИзСтроки(ТелоЗапроса);
@@ -431,10 +431,7 @@
| --data-urlencode name@file \
| --data-urlencode @fileonly";
ПрограммныйКод = "Заголовки = Новый Соответствие();
|Заголовки.Вставить(""Content-Type"", ""application/x-www-form-urlencoded"");
|
|ЧтениеТекста = Новый ЧтениеТекста(""file"");
ПрограммныйКод = "ЧтениеТекста = Новый ЧтениеТекста(""file"");
|ТекстовыеДанныеФайла_1 = ЧтениеТекста.Прочитать();
|ТекстовыеДанныеФайла_1 = КодироватьСтроку(ТекстовыеДанныеФайла_1, СпособКодированияСтроки.КодировкаURL);
|
@@ -446,6 +443,9 @@
| + ""&name="" + ТекстовыеДанныеФайла_1
| + ""&"" + ТекстовыеДанныеФайла_2;
|
|Заголовки = Новый Соответствие();
|Заголовки.Вставить(""Content-Type"", ""application/x-www-form-urlencoded"");
|
|Соединение = Новый HTTPСоединение(""example.com"", 80);
|HTTPЗапрос = Новый HTTPЗапрос(""/"", Заголовки);
|HTTPЗапрос.УстановитьТелоИзСтроки(ТелоЗапроса);
@@ -1169,11 +1169,7 @@
КонсольнаяКоманда = "curl 'http://example.com' --json @path-to-file1 --json @path-to-file2";
ПрограммныйКод = "Заголовки = Новый Соответствие();
|Заголовки.Вставить(""Content-Type"", ""application/json"");
|Заголовки.Вставить(""Accept"", ""application/json"");
|
|ЧтениеТекста = Новый ЧтениеТекста(""path-to-file1"");
ПрограммныйКод = "ЧтениеТекста = Новый ЧтениеТекста(""path-to-file1"");
|ТекстовыеДанныеФайла_1 = ЧтениеТекста.Прочитать();
|
|ЧтениеТекста = Новый ЧтениеТекста(""path-to-file2"");
@@ -1182,6 +1178,10 @@
|ТелоЗапроса = ТекстовыеДанныеФайла_1
| + ТекстовыеДанныеФайла_2;
|
|Заголовки = Новый Соответствие();
|Заголовки.Вставить(""Content-Type"", ""application/json"");
|Заголовки.Вставить(""Accept"", ""application/json"");
|
|Соединение = Новый HTTPСоединение(""example.com"", 80);
|HTTPЗапрос = Новый HTTPЗапрос(""/"", Заголовки);
|HTTPЗапрос.УстановитьТелоИзСтроки(ТелоЗапроса);
@@ -1239,16 +1239,16 @@
| --json '{""drink"": ""coffe"", ""size"": ' \
| --json @path-to-file";
ПрограммныйКод = "Заголовки = Новый Соответствие();
|Заголовки.Вставить(""Content-Type"", ""application/json"");
|Заголовки.Вставить(""Accept"", ""application/json"");
|
|ЧтениеТекста = Новый ЧтениеТекста(""path-to-file"");
ПрограммныйКод = "ЧтениеТекста = Новый ЧтениеТекста(""path-to-file"");
|ТекстовыеДанныеФайла_1 = ЧтениеТекста.Прочитать();
|
|ТелоЗапроса = ""{""""drink"""": """"coffe"""", """"size"""": ""
| + ТекстовыеДанныеФайла_1;
|
|Заголовки = Новый Соответствие();
|Заголовки.Вставить(""Content-Type"", ""application/json"");
|Заголовки.Вставить(""Accept"", ""application/json"");
|
|Соединение = Новый HTTPСоединение(""example.com"", 80);
|HTTPЗапрос = Новый HTTPЗапрос(""/"", Заголовки);
|HTTPЗапрос.УстановитьТелоИзСтроки(ТелоЗапроса);
@@ -1568,36 +1568,11 @@
&Тест
Процедура ТестДолжен_ПроверитьПроверитьПередачуДанныхMultipart() Экспорт
КонсольнаяКоманда = "curl http://example1.com/ -F name=John -F shoesize=11
|curl http://example2.com/ -F profile=@portrait.jpg
|curl http://example3.com/ -F profile=@portrait.jpg --form brief=@file.pdf
|curl http://example4.com/ -F file=@part1 --form file=@part2
|curl http://example5.com/ -F name=John -F profile=@portrait.jpg
|curl http://example6.com/ -F story=<hugefile.txt
|curl http://example7.com/ -F 'web=@index.html;type=text/html'
|curl http://example8.com/ -F 'name=daniel;type=text/foo'
|curl http://example9.com/ -F ""file=@localfile;filename=nameinpost""
|curl http://example10.com/ -F ""file=@\""local,file\"";filename=\""name;in;post\""""
|curl http://example11.com/ -F ""colors=\""red; green; blue\"";type=text/x-myapp""
|curl http://example12.com/ -F ""submit=OK;headers=\""X-submit-type: OK\""""
|curl http://example13.com/ -F ""json=@data.json;headers=\""X-header: value\""""
|curl http://example14.com/ -F ""json=@data.json;headers=\""X-header-1: some value 1\"";headers=\""X-header-2: some value 2\""""
|curl http://example15.com/ --form-string name=data
|curl http://example16.com/ --form-string name=@data;type=some
|curl http://example17.com/ -F name=John= -F brief=doctor=111;type=text/foo
|curl http://example18.com/ -F profile=@portrait.jpg;type=text/html,@file1.pdf,@file2.pdf;type=text/xml
|
|curl http://example19.com/ \
|-F multiline1=""line1
|\""line2\""
|'line3'"" \
|-F 'multiline2=line1
|line2'";
ТестовыеДанные = Новый Соответствие();
ПрограммныйКод = "//////////////////////////////////////////////
|// Команда #1.
|
|РазделительMultipart = СтрЗаменить(Новый УникальныйИдентификатор, ""-"", """");
ТестовыеДанные.Вставить(
"curl http://example1.com/ -F name=John -F shoesize=11",
"РазделительMultipart = СтрЗаменить(Новый УникальныйИдентификатор, ""-"", """");
|
|Заголовки = Новый Соответствие();
|Заголовки.Вставить(""Content-Type"", ""multipart/form-data; boundary="" + РазделительMultipart);
@@ -1623,12 +1598,12 @@
|ЗаписьДанных.ЗаписатьСтроку(""--"" + РазделительMultipart + ""--"" + РазделительСтрок);
|ЗаписьДанных.Закрыть();
|
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);
|
|//////////////////////////////////////////////
|// Команда #2.
|
|РазделительMultipart = СтрЗаменить(Новый УникальныйИдентификатор, ""-"", """");
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);"
);
ТестовыеДанные.Вставить(
"curl http://example2.com/ -F profile=@portrait.jpg",
"РазделительMultipart = СтрЗаменить(Новый УникальныйИдентификатор, ""-"", """");
|
|Заголовки = Новый Соответствие();
|Заголовки.Вставить(""Content-Type"", ""multipart/form-data; boundary="" + РазделительMultipart);
@@ -1650,12 +1625,12 @@
|ЗаписьДанных.ЗаписатьСтроку(""--"" + РазделительMultipart + ""--"" + РазделительСтрок);
|ЗаписьДанных.Закрыть();
|
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);
|
|//////////////////////////////////////////////
|// Команда #3.
|
|РазделительMultipart = СтрЗаменить(Новый УникальныйИдентификатор, ""-"", """");
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);"
);
ТестовыеДанные.Вставить(
"curl http://example3.com/ -F profile=@portrait.jpg --form brief=@file.pdf",
"РазделительMultipart = СтрЗаменить(Новый УникальныйИдентификатор, ""-"", """");
|
|Заголовки = Новый Соответствие();
|Заголовки.Вставить(""Content-Type"", ""multipart/form-data; boundary="" + РазделительMultipart);
@@ -1685,12 +1660,12 @@
|ЗаписьДанных.ЗаписатьСтроку(""--"" + РазделительMultipart + ""--"" + РазделительСтрок);
|ЗаписьДанных.Закрыть();
|
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);
|
|//////////////////////////////////////////////
|// Команда #4.
|
|РазделительMultipart = СтрЗаменить(Новый УникальныйИдентификатор, ""-"", """");
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);"
);
ТестовыеДанные.Вставить(
"curl http://example4.com/ -F file=@part1 --form file=@part2",
"РазделительMultipart = СтрЗаменить(Новый УникальныйИдентификатор, ""-"", """");
|
|Заголовки = Новый Соответствие();
|Заголовки.Вставить(""Content-Type"", ""multipart/form-data; boundary="" + РазделительMultipart);
@@ -1720,12 +1695,12 @@
|ЗаписьДанных.ЗаписатьСтроку(""--"" + РазделительMultipart + ""--"" + РазделительСтрок);
|ЗаписьДанных.Закрыть();
|
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);
|
|//////////////////////////////////////////////
|// Команда #5.
|
|РазделительMultipart = СтрЗаменить(Новый УникальныйИдентификатор, ""-"", """");
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);"
);
ТестовыеДанные.Вставить(
"curl http://example5.com/ -F name=John -F profile=@portrait.jpg",
"РазделительMultipart = СтрЗаменить(Новый УникальныйИдентификатор, ""-"", """");
|
|Заголовки = Новый Соответствие();
|Заголовки.Вставить(""Content-Type"", ""multipart/form-data; boundary="" + РазделительMultipart);
@@ -1753,19 +1728,19 @@
|ЗаписьДанных.ЗаписатьСтроку(""--"" + РазделительMultipart + ""--"" + РазделительСтрок);
|ЗаписьДанных.Закрыть();
|
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);
|
|//////////////////////////////////////////////
|// Команда #6.
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);"
);
ТестовыеДанные.Вставить(
"curl http://example6.com/ -F story=<hugefile.txt",
"ЧтениеТекста = Новый ЧтениеТекста(""hugefile.txt"");
|ТекстовыеДанныеФайла_1 = ЧтениеТекста.Прочитать();
|
|РазделительMultipart = СтрЗаменить(Новый УникальныйИдентификатор, ""-"", """");
|
|Заголовки = Новый Соответствие();
|Заголовки.Вставить(""Content-Type"", ""multipart/form-data; boundary="" + РазделительMultipart);
|
|ЧтениеТекста = Новый ЧтениеТекста(""hugefile.txt"");
|ТекстовыеДанныеФайла_1 = ЧтениеТекста.Прочитать();
|
|Соединение = Новый HTTPСоединение(""example6.com"", 80);
|HTTPЗапрос = Новый HTTPЗапрос(""/"", Заголовки);
|Поток = HTTPЗапрос.ПолучитьТелоКакПоток();
@@ -1781,12 +1756,12 @@
|ЗаписьДанных.ЗаписатьСтроку(""--"" + РазделительMultipart + ""--"" + РазделительСтрок);
|ЗаписьДанных.Закрыть();
|
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);
|
|//////////////////////////////////////////////
|// Команда #7.
|
|РазделительMultipart = СтрЗаменить(Новый УникальныйИдентификатор, ""-"", """");
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);"
);
ТестовыеДанные.Вставить(
"curl http://example7.com/ -F 'web=@index.html;type=text/html'",
"РазделительMultipart = СтрЗаменить(Новый УникальныйИдентификатор, ""-"", """");
|
|Заголовки = Новый Соответствие();
|Заголовки.Вставить(""Content-Type"", ""multipart/form-data; boundary="" + РазделительMultipart);
@@ -1808,12 +1783,12 @@
|ЗаписьДанных.ЗаписатьСтроку(""--"" + РазделительMultipart + ""--"" + РазделительСтрок);
|ЗаписьДанных.Закрыть();
|
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);
|
|//////////////////////////////////////////////
|// Команда #8.
|
|РазделительMultipart = СтрЗаменить(Новый УникальныйИдентификатор, ""-"", """");
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);"
);
ТестовыеДанные.Вставить(
"curl http://example8.com/ -F 'name=daniel;type=text/foo'",
"РазделительMultipart = СтрЗаменить(Новый УникальныйИдентификатор, ""-"", """");
|
|Заголовки = Новый Соответствие();
|Заголовки.Вставить(""Content-Type"", ""multipart/form-data; boundary="" + РазделительMultipart);
@@ -1834,12 +1809,12 @@
|ЗаписьДанных.ЗаписатьСтроку(""--"" + РазделительMultipart + ""--"" + РазделительСтрок);
|ЗаписьДанных.Закрыть();
|
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);
|
|//////////////////////////////////////////////
|// Команда #9.
|
|РазделительMultipart = СтрЗаменить(Новый УникальныйИдентификатор, ""-"", """");
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);"
);
ТестовыеДанные.Вставить(
"curl http://example9.com/ -F ""file=@localfile;filename=nameinpost""",
"РазделительMultipart = СтрЗаменить(Новый УникальныйИдентификатор, ""-"", """");
|
|Заголовки = Новый Соответствие();
|Заголовки.Вставить(""Content-Type"", ""multipart/form-data; boundary="" + РазделительMultipart);
@@ -1861,12 +1836,12 @@
|ЗаписьДанных.ЗаписатьСтроку(""--"" + РазделительMultipart + ""--"" + РазделительСтрок);
|ЗаписьДанных.Закрыть();
|
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);
|
|//////////////////////////////////////////////
|// Команда #10.
|
|РазделительMultipart = СтрЗаменить(Новый УникальныйИдентификатор, ""-"", """");
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);"
);
ТестовыеДанные.Вставить(
"curl http://example10.com/ -F ""file=@\""local,file\"";filename=\""name;in;post\""""",
"РазделительMultipart = СтрЗаменить(Новый УникальныйИдентификатор, ""-"", """");
|
|Заголовки = Новый Соответствие();
|Заголовки.Вставить(""Content-Type"", ""multipart/form-data; boundary="" + РазделительMultipart);
@@ -1888,12 +1863,12 @@
|ЗаписьДанных.ЗаписатьСтроку(""--"" + РазделительMultipart + ""--"" + РазделительСтрок);
|ЗаписьДанных.Закрыть();
|
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);
|
|//////////////////////////////////////////////
|// Команда #11.
|
|РазделительMultipart = СтрЗаменить(Новый УникальныйИдентификатор, ""-"", """");
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);"
);
ТестовыеДанные.Вставить(
"curl http://example11.com/ -F ""colors=\""red; green; blue\"";type=text/x-myapp""",
"РазделительMultipart = СтрЗаменить(Новый УникальныйИдентификатор, ""-"", """");
|
|Заголовки = Новый Соответствие();
|Заголовки.Вставить(""Content-Type"", ""multipart/form-data; boundary="" + РазделительMultipart);
@@ -1914,12 +1889,12 @@
|ЗаписьДанных.ЗаписатьСтроку(""--"" + РазделительMultipart + ""--"" + РазделительСтрок);
|ЗаписьДанных.Закрыть();
|
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);
|
|//////////////////////////////////////////////
|// Команда #12.
|
|РазделительMultipart = СтрЗаменить(Новый УникальныйИдентификатор, ""-"", """");
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);"
);
ТестовыеДанные.Вставить(
"curl http://example12.com/ -F ""submit=OK;headers=\""X-submit-type: OK\""""",
"РазделительMultipart = СтрЗаменить(Новый УникальныйИдентификатор, ""-"", """");
|
|Заголовки = Новый Соответствие();
|Заголовки.Вставить(""Content-Type"", ""multipart/form-data; boundary="" + РазделительMultipart);
@@ -1940,12 +1915,12 @@
|ЗаписьДанных.ЗаписатьСтроку(""--"" + РазделительMultipart + ""--"" + РазделительСтрок);
|ЗаписьДанных.Закрыть();
|
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);
|
|//////////////////////////////////////////////
|// Команда #13.
|
|РазделительMultipart = СтрЗаменить(Новый УникальныйИдентификатор, ""-"", """");
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);"
);
ТестовыеДанные.Вставить(
"curl http://example13.com/ -F ""json=@data.json;headers=\""X-header: value\""""",
"РазделительMultipart = СтрЗаменить(Новый УникальныйИдентификатор, ""-"", """");
|
|Заголовки = Новый Соответствие();
|Заголовки.Вставить(""Content-Type"", ""multipart/form-data; boundary="" + РазделительMultipart);
@@ -1968,12 +1943,12 @@
|ЗаписьДанных.ЗаписатьСтроку(""--"" + РазделительMultipart + ""--"" + РазделительСтрок);
|ЗаписьДанных.Закрыть();
|
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);
|
|//////////////////////////////////////////////
|// Команда #14.
|
|РазделительMultipart = СтрЗаменить(Новый УникальныйИдентификатор, ""-"", """");
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);"
);
ТестовыеДанные.Вставить(
"curl http://example14.com/ -F ""json=@data.json;headers=\""X-header-1: some value 1\"";headers=\""X-header-2: some value 2\""""",
"РазделительMultipart = СтрЗаменить(Новый УникальныйИдентификатор, ""-"", """");
|
|Заголовки = Новый Соответствие();
|Заголовки.Вставить(""Content-Type"", ""multipart/form-data; boundary="" + РазделительMultipart);
@@ -1997,12 +1972,12 @@
|ЗаписьДанных.ЗаписатьСтроку(""--"" + РазделительMultipart + ""--"" + РазделительСтрок);
|ЗаписьДанных.Закрыть();
|
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);
|
|//////////////////////////////////////////////
|// Команда #15.
|
|РазделительMultipart = СтрЗаменить(Новый УникальныйИдентификатор, ""-"", """");
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);"
);
ТестовыеДанные.Вставить(
"curl http://example15.com/ --form-string name=data",
"РазделительMultipart = СтрЗаменить(Новый УникальныйИдентификатор, ""-"", """");
|
|Заголовки = Новый Соответствие();
|Заголовки.Вставить(""Content-Type"", ""multipart/form-data; boundary="" + РазделительMultipart);
@@ -2022,12 +1997,12 @@
|ЗаписьДанных.ЗаписатьСтроку(""--"" + РазделительMultipart + ""--"" + РазделительСтрок);
|ЗаписьДанных.Закрыть();
|
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);
|
|//////////////////////////////////////////////
|// Команда #16.
|
|РазделительMultipart = СтрЗаменить(Новый УникальныйИдентификатор, ""-"", """");
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);"
);
ТестовыеДанные.Вставить(
"curl http://example16.com/ --form-string name=@data;type=some",
"РазделительMultipart = СтрЗаменить(Новый УникальныйИдентификатор, ""-"", """");
|
|Заголовки = Новый Соответствие();
|Заголовки.Вставить(""Content-Type"", ""multipart/form-data; boundary="" + РазделительMultipart);
@@ -2047,12 +2022,12 @@
|ЗаписьДанных.ЗаписатьСтроку(""--"" + РазделительMultipart + ""--"" + РазделительСтрок);
|ЗаписьДанных.Закрыть();
|
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);
|
|//////////////////////////////////////////////
|// Команда #17.
|
|РазделительMultipart = СтрЗаменить(Новый УникальныйИдентификатор, ""-"", """");
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);"
);
ТестовыеДанные.Вставить(
"curl http://example17.com/ -F name=John= -F brief=doctor=111;type=text/foo",
"РазделительMultipart = СтрЗаменить(Новый УникальныйИдентификатор, ""-"", """");
|
|Заголовки = Новый Соответствие();
|Заголовки.Вставить(""Content-Type"", ""multipart/form-data; boundary="" + РазделительMultipart);
@@ -2079,12 +2054,12 @@
|ЗаписьДанных.ЗаписатьСтроку(""--"" + РазделительMultipart + ""--"" + РазделительСтрок);
|ЗаписьДанных.Закрыть();
|
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);
|
|//////////////////////////////////////////////
|// Команда #18.
|
|РазделительMultipart = СтрЗаменить(Новый УникальныйИдентификатор, ""-"", """");
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);"
);
ТестовыеДанные.Вставить(
"curl http://example18.com/ -F profile=@portrait.jpg;type=text/html,@file1.pdf,@file2.pdf;type=text/xml",
"РазделительMultipart = СтрЗаменить(Новый УникальныйИдентификатор, ""-"", """");
|
|Заголовки = Новый Соответствие();
|Заголовки.Вставить(""Content-Type"", ""multipart/form-data; boundary="" + РазделительMultipart);
@@ -2122,12 +2097,17 @@
|ЗаписьДанных.ЗаписатьСтроку(""--"" + РазделительMultipart + ""--"" + РазделительСтрок);
|ЗаписьДанных.Закрыть();
|
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);
|
|//////////////////////////////////////////////
|// Команда #19.
|
|РазделительMultipart = СтрЗаменить(Новый УникальныйИдентификатор, ""-"", """");
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);"
);
ТестовыеДанные.Вставить(
"curl http://example19.com/ \
|-F multiline1=""line1
|\""line2\""
|'line3'"" \
|-F 'multiline2=line1
|line2'",
"РазделительMultipart = СтрЗаменить(Новый УникальныйИдентификатор, ""-"", """");
|
|Заголовки = Новый Соответствие();
|Заголовки.Вставить(""Content-Type"", ""multipart/form-data; boundary="" + РазделительMultipart);
@@ -2156,9 +2136,12 @@
|ЗаписьДанных.ЗаписатьСтроку(""--"" + РазделительMultipart + ""--"" + РазделительСтрок);
|ЗаписьДанных.Закрыть();
|
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);";
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);"
);
ПроверитьКонвертациюБезОшибок(КонсольнаяКоманда, ПрограммныйКод);
Для Каждого Строка Из ТестовыеДанные Цикл
ПроверитьКонвертациюБезОшибок(Строка.Ключ, Строка.Значение);
КонецЦикла
КонецПроцедуры
@@ -2215,8 +2198,8 @@
КонвертерКомандыCURL.УстановитьЯзыкПеревода("ru");
РезультатОригинал = КонвертерКомандыCURL.Конвертировать(КонсольнаяКоманда, Генератор, Ошибки);
Ожидаем.Что(РезультатОригинал).Равно(ПрограммныйКод);
Ожидаем.Что(Ошибки).Не_().Заполнено();
Ожидаем.Что(РезультатОригинал, КонсольнаяКоманда).Равно(ПрограммныйКод);
Ожидаем.Что(Ошибки, КонсольнаяКоманда).Не_().Заполнено();
// Перевод
КонвертерКомандыCURL.УстановитьЯзыкПеревода("en");

View File

@@ -802,11 +802,7 @@
КонсольнаяКоманда = "curl 'http://example.com' --json @path-to-file1 --json @path-to-file2";
ПрограммныйКод = "Заголовки = Новый Соответствие();
|Заголовки.Вставить(""Content-Type"", ""application/json"");
|Заголовки.Вставить(""Accept"", ""application/json"");
|
|ЧтениеТекста = Новый ЧтениеТекста(""path-to-file1"");
ПрограммныйКод = "ЧтениеТекста = Новый ЧтениеТекста(""path-to-file1"");
|ТекстовыеДанныеФайла_1 = ЧтениеТекста.Прочитать();
|
|ЧтениеТекста = Новый ЧтениеТекста(""path-to-file2"");
@@ -815,6 +811,10 @@
|Данные = ТекстовыеДанныеФайла_1
| + ТекстовыеДанныеФайла_2;
|
|Заголовки = Новый Соответствие();
|Заголовки.Вставить(""Content-Type"", ""application/json"");
|Заголовки.Вставить(""Accept"", ""application/json"");
|
|ДополнительныеПараметры = Новый Структура();
|ДополнительныеПараметры.Вставить(""Заголовки"", Заголовки);
|
@@ -829,13 +829,13 @@
КонсольнаяКоманда = "curl 'http://example.com' --json '{""drink"": ""coffe""}'";
ПрограммныйКод = "Заголовки = Новый Соответствие();
ПрограммныйКод = "Данные = Новый Соответствие();
|Данные.Вставить(""drink"", ""coffe"");
|
|Заголовки = Новый Соответствие();
|Заголовки.Вставить(""Content-Type"", ""application/json"");
|Заголовки.Вставить(""Accept"", ""application/json"");
|
|Данные = Новый Соответствие();
|Данные.Вставить(""drink"", ""coffe"");
|
|ДополнительныеПараметры = Новый Структура();
|ДополнительныеПараметры.Вставить(""Заголовки"", Заголовки);
|ДополнительныеПараметры.Вставить(""Json"", Данные);
@@ -853,13 +853,13 @@
| --json '{""drink"":' \
| --json ' ""coffe""}'";
ПрограммныйКод = "Заголовки = Новый Соответствие();
ПрограммныйКод = "Данные = Новый Соответствие();
|Данные.Вставить(""drink"", ""coffe"");
|
|Заголовки = Новый Соответствие();
|Заголовки.Вставить(""Content-Type"", ""application/json"");
|Заголовки.Вставить(""Accept"", ""application/json"");
|
|Данные = Новый Соответствие();
|Данные.Вставить(""drink"", ""coffe"");
|
|ДополнительныеПараметры = Новый Структура();
|ДополнительныеПараметры.Вставить(""Заголовки"", Заголовки);
|ДополнительныеПараметры.Вставить(""Json"", Данные);
@@ -877,16 +877,16 @@
| --json '{""drink"": ""coffe"", ""size"": ' \
| --json @path-to-file";
ПрограммныйКод = "Заголовки = Новый Соответствие();
|Заголовки.Вставить(""Content-Type"", ""application/json"");
|Заголовки.Вставить(""Accept"", ""application/json"");
|
|ЧтениеТекста = Новый ЧтениеТекста(""path-to-file"");
ПрограммныйКод = "ЧтениеТекста = Новый ЧтениеТекста(""path-to-file"");
|ТекстовыеДанныеФайла_1 = ЧтениеТекста.Прочитать();
|
|Данные = ""{""""drink"""": """"coffe"""", """"size"""": ""
| + ТекстовыеДанныеФайла_1;
|
|Заголовки = Новый Соответствие();
|Заголовки.Вставить(""Content-Type"", ""application/json"");
|Заголовки.Вставить(""Accept"", ""application/json"");
|
|ДополнительныеПараметры = Новый Структура();
|ДополнительныеПараметры.Вставить(""Заголовки"", Заголовки);
|
@@ -921,10 +921,7 @@
| ]
|}'";
ПрограммныйКод = "Заголовки = Новый Соответствие();
|Заголовки.Вставить(""Content-Type"", ""application/json"");
|
|Данные = Новый Соответствие();
ПрограммныйКод = "Данные = Новый Соответствие();
|Данные.Вставить(""title"", ""Sample Slide Show"");
|Данные.Вставить(""date"", Дата(2024, 4, 13, 8, 30, 0));
|Данные.Вставить(""author"", ""Yours Truly"");
@@ -940,6 +937,9 @@
|Данные[""slides""][1][""items""].Добавить(""Why <em>WonderWidgets</em> are great"");
|Данные[""slides""][1][""items""].Добавить(""Who <em>buys</em> WonderWidgets"");
|
|Заголовки = Новый Соответствие();
|Заголовки.Вставить(""Content-Type"", ""application/json"");
|
|ДополнительныеПараметры = Новый Структура();
|ДополнительныеПараметры.Вставить(""Заголовки"", Заголовки);
|ДополнительныеПараметры.Вставить(""Json"", Данные);