Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: Исправление разбора опции -F, --form при наличии знака = в значении поля #182

Merged
merged 1 commit into from
Feb 23, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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