Skip to content

Commit

Permalink
fix: Исправление разбора опции -F, --form при наличии знака = в значе…
Browse files Browse the repository at this point in the history
…нии поля (#182)
  • Loading branch information
Stivo182 authored Feb 23, 2025
1 parent e829d61 commit 53d0fbb
Show file tree
Hide file tree
Showing 3 changed files with 54 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,14 @@
ИначеЕсли ТипТокена = "ТочкаСЗапятой" Тогда
ПроверитьИДобавитьПараметр();
ИначеЕсли ТипТокена = "Равенство" Тогда
БылРазделитель = Истина;
ЗначениеПараметра = "";
Если БылРазделитель Тогда
ДополнитьЗначениемТокена(Токен);
Иначе
БылРазделитель = Истина;
ЗначениеПараметра = "";
КонецЕсли;
Иначе
ВызватьИсключение "Ошибка при парсинге значения опции -F, --form";
КонецЕсли;

КонецЦикла;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1552,7 +1552,8 @@
|curl http://example13.com/ -F ""[email protected];headers=\""X-header: value\""""
|curl http://example14.com/ -F ""[email protected];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://example16.com/ --form-string name=@data;type=some
|curl http://example17.com/ -F name=John= -F brief=doctor=111;type=text/foo";

ПрограммныйКод = "//////////////////////////////////////////////
|// Команда #1.
Expand Down Expand Up @@ -2007,6 +2008,38 @@
|ЗаписьДанных.ЗаписатьСтроку(""--"" + РазделительMultipart + ""--"" + РазделительСтрок);
|ЗаписьДанных.Закрыть();
|
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);
|
|//////////////////////////////////////////////
|// Команда #17.
|
|РазделительMultipart = СтрЗаменить(Новый УникальныйИдентификатор, ""-"", """");
|
|Заголовки = Новый Соответствие();
|Заголовки.Вставить(""Content-Type"", ""multipart/form-data; boundary="" + РазделительMultipart);
|
|Соединение = Новый HTTPСоединение(""example17.com"", 80);
|HTTPЗапрос = Новый HTTPЗапрос(""/"", Заголовки);
|Поток = HTTPЗапрос.ПолучитьТелоКакПоток();
|
|РазделительСтрок = Символы.ВК + Символы.ПС;
|ЗаписьДанных = Новый ЗаписьДанных(Поток, , , """", """");
|// Начало name
|ЗаписьДанных.ЗаписатьСтроку(""--"" + РазделительMultipart + РазделительСтрок);
|ЗаписьДанных.ЗаписатьСтроку(""Content-Disposition: form-data; name=""""name"""""" + РазделительСтрок);
|ЗаписьДанных.ЗаписатьСтроку(РазделительСтрок);
|ЗаписьДанных.ЗаписатьСтроку(""John="" + РазделительСтрок);
|// Конец name
|// Начало brief
|ЗаписьДанных.ЗаписатьСтроку(""--"" + РазделительMultipart + РазделительСтрок);
|ЗаписьДанных.ЗаписатьСтроку(""Content-Disposition: form-data; name=""""brief"""""" + РазделительСтрок);
|ЗаписьДанных.ЗаписатьСтроку(""Content-Type: text/foo"" + РазделительСтрок);
|ЗаписьДанных.ЗаписатьСтроку(РазделительСтрок);
|ЗаписьДанных.ЗаписатьСтроку(""doctor=111"" + РазделительСтрок);
|// Конец brief
|ЗаписьДанных.ЗаписатьСтроку(""--"" + РазделительMultipart + ""--"" + РазделительСтрок);
|ЗаписьДанных.Закрыть();
|
|HTTPОтвет = Соединение.ВызватьHTTPМетод(""POST"", HTTPЗапрос);";

ПроверитьКонвертациюБезОшибок(КонсольнаяКоманда, ПрограммныйКод);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1056,7 +1056,8 @@
|curl http://example13.com/ -F ""[email protected];headers=\""X-header: value\""""
|curl http://example14.com/ -F ""[email protected];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://example16.com/ --form-string name=@data;type=some
|curl http://example17.com/ -F name=John= -F brief=doctor=111;type=text/foo";

ПрограммныйКод = "//////////////////////////////////////////////
|// Команда #1.
Expand Down Expand Up @@ -1275,7 +1276,16 @@
|Данные = Новый Соответствие();
|Данные.Вставить(""name"", ""@data;type=some"");
|
|Результат = КоннекторHTTP.Post(""http://example16.com"", Данные);";
|Результат = КоннекторHTTP.Post(""http://example16.com"", Данные);
|
|//////////////////////////////////////////////
|// Команда #17.
|
|Данные = Новый Соответствие();
|Данные.Вставить(""name"", ""John="");
|Данные.Вставить(""brief"", ""doctor=111"");
|
|Результат = КоннекторHTTP.Post(""http://example17.com"", Данные);";

ПроверитьКонвертациюБезОшибок(КонсольнаяКоманда, ПрограммныйКод);

Expand Down

0 comments on commit 53d0fbb

Please sign in to comment.