-
Notifications
You must be signed in to change notification settings - Fork 209
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Ошибка обработки URL с параметрами запроса без значений #10, Отправка…
… в запросе произвольных текстов, бинарных данных #11
- Loading branch information
1 parent
3ca0a04
commit 94aa7c1
Showing
2 changed files
with
67 additions
and
16 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -17,7 +17,7 @@ | |
// | ||
// URL: https://github.com/vbondarevsky/Connector | ||
// e-mail: [email protected] | ||
// Версия: 1.1.8 | ||
// Версия: 1.1.9 | ||
// | ||
// Требования: платформа 1С версии 8.3.10 и выше | ||
|
||
|
@@ -729,10 +729,14 @@ | |
Значения.Добавить(Параметр.Значение); | ||
КонецЕсли; | ||
|
||
Для Каждого Значение Из Значения Цикл | ||
ЗначениеПараметра = КодироватьСтроку(Значение, СпособКодированияСтроки.URLВКодировкеURL); | ||
ЧастиПараметрыЗапроса.Добавить(СтрШаблон("%1=%2", Параметр.Ключ, ЗначениеПараметра)); | ||
КонецЦикла; | ||
Если Параметр.Значение = Неопределено Тогда | ||
ЧастиПараметрыЗапроса.Добавить(Параметр.Ключ); | ||
Иначе | ||
Для Каждого Значение Из Значения Цикл | ||
ЗначениеПараметра = КодироватьСтроку(Значение, СпособКодированияСтроки.URLВКодировкеURL); | ||
ЧастиПараметрыЗапроса.Добавить(СтрШаблон("%1=%2", Параметр.Ключ, ЗначениеПараметра)); | ||
КонецЦикла; | ||
КонецЕсли; | ||
КонецЦикла; | ||
|
||
Возврат СтрСоединить(ЧастиПараметрыЗапроса, "&"); | ||
|
@@ -883,10 +887,16 @@ | |
ContentType = ЗакодироватьФайлы(HTTPЗапрос, Файлы, Данные); | ||
ИначеЕсли ЗначениеЗаполнено(Данные) Тогда | ||
ContentType = "application/x-www-form-urlencoded"; | ||
HTTPЗапрос.УстановитьТелоИзСтроки( | ||
КодироватьПараметрыЗапроса(Данные), | ||
КодировкаТекста.UTF8, | ||
ИспользованиеByteOrderMark.НеИспользовать); | ||
Если ТипЗнч(Данные) = Тип("ДвоичныеДанные") Тогда | ||
HTTPЗапрос.УстановитьТелоИзДвоичныхДанных(Данные); | ||
Иначе | ||
Если ТипЗнч(Данные) = Тип("Строка") Тогда | ||
Тело = Данные; | ||
Иначе | ||
Тело = КодироватьПараметрыЗапроса(Данные); | ||
КонецЕсли; | ||
HTTPЗапрос.УстановитьТелоИзСтроки(Тело, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать); | ||
КонецЕсли; | ||
КонецЕсли; | ||
ИначеЕсли ЗначениеЗаполнено(Json) Тогда | ||
ContentType = "application/json"; | ||
|
@@ -1468,17 +1478,20 @@ | |
Запрос = РаскодироватьСтроку(Запрос, СпособКодированияСтроки.URLВКодировкеURL); | ||
Для Каждого СтрокаКлючРавноПараметр Из СтрРазделить(Запрос, "&", Ложь) Цикл | ||
КлючПараметр = СтрРазделить(СтрокаКлючРавноПараметр, "="); | ||
Если ПараметрыЗапроса.Получить(КлючПараметр[0]) <> Неопределено Тогда | ||
Если ТипЗнч(КлючПараметр[1]) = Тип("Массив") Тогда | ||
ПараметрыЗапроса[КлючПараметр[0]].Добавить(КлючПараметр[1]); | ||
Ключ = КлючПараметр[0]; | ||
Значение = ?(КлючПараметр.Количество() = 1, Неопределено, КлючПараметр[1]); | ||
|
||
Если ПараметрыЗапроса.Получить(Ключ) <> Неопределено Тогда | ||
Если ТипЗнч(Значение) = Тип("Массив") Тогда | ||
ПараметрыЗапроса[Ключ].Добавить(Значение); | ||
Иначе | ||
Значения = Новый Массив; | ||
Значения.Добавить(ПараметрыЗапроса[КлючПараметр[0]]); | ||
Значения.Добавить(КлючПараметр[1]); | ||
ПараметрыЗапроса[КлючПараметр[0]] = Значения; | ||
Значения.Добавить(ПараметрыЗапроса[Ключ]); | ||
Значения.Добавить(Значение); | ||
ПараметрыЗапроса[Ключ] = Значения; | ||
КонецЕсли; | ||
Иначе | ||
ПараметрыЗапроса.Вставить(КлючПараметр[0], КлючПараметр[1]); | ||
ПараметрыЗапроса.Вставить(Ключ, Значение); | ||
КонецЕсли; | ||
КонецЦикла; | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters