mirror of
https://github.com/vbondarevsky/Connector.git
synced 2024-11-28 08:58:44 +02:00
Исправлены ошибки, выявленные SonarQube (#48)
This commit is contained in:
parent
45732a3395
commit
ed95515f49
@ -177,7 +177,10 @@
|
||||
// Соответствие, Структура - ответ, десериализованный из JSON.
|
||||
// Параметры преобразования см. ДополнительныеПараметры.ПараметрыПреобразованияJSON.
|
||||
//
|
||||
Функция GetJson(URL, ПараметрыЗапроса = Неопределено, ДополнительныеПараметры = Неопределено, Сессия = Неопределено) Экспорт
|
||||
Функция GetJson(URL,
|
||||
ПараметрыЗапроса = Неопределено,
|
||||
ДополнительныеПараметры = Неопределено,
|
||||
Сессия = Неопределено) Экспорт
|
||||
|
||||
ТекущаяСессия = ТекущаяСессия(Сессия);
|
||||
ЗаполнитьДополнительныеДанные(ДополнительныеПараметры, ПараметрыЗапроса, Неопределено, Неопределено);
|
||||
@ -540,7 +543,10 @@
|
||||
Если Не ЗначениеЗаполнено(Схема) Тогда
|
||||
Схема = "http";
|
||||
КонецЕсли;
|
||||
Путь = ?(ЗначениеЗаполнено(Путь), Путь, "/");
|
||||
|
||||
Если Не ЗначениеЗаполнено(Путь) Тогда
|
||||
Путь = "/";
|
||||
КонецЕсли;
|
||||
|
||||
Результат = Новый Структура;
|
||||
Результат.Вставить("Схема", Схема);
|
||||
@ -909,7 +915,7 @@
|
||||
|
||||
ПодготовленныйЗапрос = ПодготовитьЗапрос(Сессия, Метод, URL, ДополнительныеПараметры);
|
||||
|
||||
НастройкиПодключения = ПолучитьНастройкиПодключения(Метод, URL, ДополнительныеПараметры);
|
||||
НастройкиПодключения = НастройкиПодключения(Метод, URL, ДополнительныеПараметры);
|
||||
|
||||
Ответ = ОтправитьЗапрос(Сессия, ПодготовленныйЗапрос, НастройкиПодключения);
|
||||
|
||||
@ -952,7 +958,7 @@
|
||||
|
||||
Функция СформироватьНовыйURLПриПеренаправлении(Ответ)
|
||||
|
||||
НовыйURL = ПолучитьЗначениеЗаголовка("location", Ответ.Заголовки);
|
||||
НовыйURL = ЗначениеЗаголовка("location", Ответ.Заголовки);
|
||||
НовыйURL = РаскодироватьСтроку(НовыйURL, СпособКодированияСтроки.URLВКодировкеURL);
|
||||
|
||||
// Редирект без схемы
|
||||
@ -990,22 +996,22 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ПолучитьНастройкиПодключения(Метод, URL, ДополнительныеПараметры)
|
||||
Функция НастройкиПодключения(Метод, URL, ДополнительныеПараметры)
|
||||
|
||||
РазрешитьПеренаправление =
|
||||
ПолучитьЗначениеПоКлючу(ДополнительныеПараметры, "РазрешитьПеренаправление", ВРег(Метод) <> "HEAD");
|
||||
ПроверятьSSL = ПолучитьЗначениеПоКлючу(ДополнительныеПараметры, "ПроверятьSSL", Истина);
|
||||
КлиентскийСертификатSSL = ПолучитьЗначениеПоКлючу(ДополнительныеПараметры, "КлиентскийСертификатSSL");
|
||||
Прокси = ПолучитьЗначениеПоКлючу(ДополнительныеПараметры, "Прокси", ПолучитьПроксиПоУмолчанию(URL));
|
||||
МаксимальноеКоличествоПовторов = ПолучитьЗначениеПоКлючу(ДополнительныеПараметры, "МаксимальноеКоличествоПовторов", 0);
|
||||
ЗначениеПоКлючу(ДополнительныеПараметры, "РазрешитьПеренаправление", ВРег(Метод) <> "HEAD");
|
||||
ПроверятьSSL = ЗначениеПоКлючу(ДополнительныеПараметры, "ПроверятьSSL", Истина);
|
||||
КлиентскийСертификатSSL = ЗначениеПоКлючу(ДополнительныеПараметры, "КлиентскийСертификатSSL");
|
||||
Прокси = ЗначениеПоКлючу(ДополнительныеПараметры, "Прокси", ПроксиПоУмолчанию(URL));
|
||||
МаксимальноеКоличествоПовторов = ЗначениеПоКлючу(ДополнительныеПараметры, "МаксимальноеКоличествоПовторов", 0);
|
||||
ПовторятьДляКодовСостояний =
|
||||
ПолучитьЗначениеПоКлючу(ДополнительныеПараметры, "ПовторятьДляКодовСостояний", Неопределено);
|
||||
ЗначениеПоКлючу(ДополнительныеПараметры, "ПовторятьДляКодовСостояний", Неопределено);
|
||||
КоэффициентЭкспоненциальнойЗадержки =
|
||||
ПолучитьЗначениеПоКлючу(ДополнительныеПараметры, "КоэффициентЭкспоненциальнойЗадержки", 1);
|
||||
МаксимальноеВремяПовторов = ПолучитьЗначениеПоКлючу(ДополнительныеПараметры, "МаксимальноеВремяПовторов", 600);
|
||||
ЗначениеПоКлючу(ДополнительныеПараметры, "КоэффициентЭкспоненциальнойЗадержки", 1);
|
||||
МаксимальноеВремяПовторов = ЗначениеПоКлючу(ДополнительныеПараметры, "МаксимальноеВремяПовторов", 600);
|
||||
|
||||
Настройки = Новый Структура;
|
||||
Настройки.Вставить("Таймаут", ПолучитьТаймаут(ДополнительныеПараметры));
|
||||
Настройки.Вставить("Таймаут", Таймаут(ДополнительныеПараметры));
|
||||
Настройки.Вставить("РазрешитьПеренаправление", РазрешитьПеренаправление);
|
||||
Настройки.Вставить("ПроверятьSSL", ПроверятьSSL);
|
||||
Настройки.Вставить("КлиентскийСертификатSSL", КлиентскийСертификатSSL);
|
||||
@ -1019,7 +1025,7 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьТаймаут(ДополнительныеПараметры)
|
||||
Функция Таймаут(ДополнительныеПараметры)
|
||||
|
||||
Если ДополнительныеПараметры.Свойство("Таймаут") И ЗначениеЗаполнено(ДополнительныеПараметры.Таймаут) Тогда
|
||||
Таймаут = ДополнительныеПараметры.Таймаут;
|
||||
@ -1031,7 +1037,7 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьПроксиПоУмолчанию(URL)
|
||||
Функция ПроксиПоУмолчанию(URL)
|
||||
|
||||
ПроксиПоУмолчанию = Новый ИнтернетПрокси;
|
||||
// BSLLS:ExecuteExternalCodeInCommonModule-off
|
||||
@ -1219,7 +1225,7 @@
|
||||
|
||||
СортированныеЗаголовки = "Content-Disposition,Content-Type,Content-Location";
|
||||
Для Каждого Ключ Из СтрРазделить(СортированныеЗаголовки, ",") Цикл
|
||||
Значение = ПолучитьЗначениеЗаголовка(Ключ, Заголовки);
|
||||
Значение = ЗначениеЗаголовка(Ключ, Заголовки);
|
||||
Если Значение <> Ложь И ЗначениеЗаполнено(Значение) Тогда
|
||||
Строки.Добавить(СтрШаблон("%1: %2", Ключ, Значение));
|
||||
КонецЕсли;
|
||||
@ -1237,7 +1243,7 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьЗначениеПоКлючу(Структура, Ключ, ЗначениеПоУмолчанию = Неопределено)
|
||||
Функция ЗначениеПоКлючу(Структура, Ключ, ЗначениеПоУмолчанию = Неопределено)
|
||||
|
||||
Если ТипЗнч(Структура) = Тип("Структура") И Структура.Свойство(Ключ) Тогда
|
||||
Значение = Структура[Ключ];
|
||||
@ -1257,12 +1263,12 @@
|
||||
Поле.Имя = ИсходныеПараметры.Имя;
|
||||
Поле.Данные = ИсходныеПараметры.Данные;
|
||||
|
||||
Поле.Тип = ПолучитьЗначениеПоКлючу(ИсходныеПараметры, "Тип");
|
||||
Поле.Заголовки = ПолучитьЗначениеПоКлючу(ИсходныеПараметры, "Заголовки", Новый Соответствие);
|
||||
Поле.ИмяФайла = ПолучитьЗначениеПоКлючу(ИсходныеПараметры, "ИмяФайла");
|
||||
Поле.Тип = ЗначениеПоКлючу(ИсходныеПараметры, "Тип");
|
||||
Поле.Заголовки = ЗначениеПоКлючу(ИсходныеПараметры, "Заголовки", Новый Соответствие);
|
||||
Поле.ИмяФайла = ЗначениеПоКлючу(ИсходныеПараметры, "ИмяФайла");
|
||||
|
||||
Ключ = "Content-Disposition";
|
||||
Если ПолучитьЗначениеЗаголовка("content-disposition", Поле.Заголовки, Ключ) = Ложь Тогда
|
||||
Если ЗначениеЗаголовка("content-disposition", Поле.Заголовки, Ключ) = Ложь Тогда
|
||||
Поле.Заголовки.Вставить("Content-Disposition", "form-data");
|
||||
КонецЕсли;
|
||||
|
||||
@ -1345,7 +1351,7 @@
|
||||
Иначе
|
||||
ContentType = Неопределено;
|
||||
КонецЕсли;
|
||||
ЗначениеЗаголовка = ПолучитьЗначениеЗаголовка("content-type", ПодготовленныйЗапрос.Заголовки);
|
||||
ЗначениеЗаголовка = ЗначениеЗаголовка("content-type", ПодготовленныйЗапрос.Заголовки);
|
||||
Если ЗначениеЗаголовка = Ложь И ЗначениеЗаполнено(ContentType) Тогда
|
||||
ПодготовленныйЗапрос.Заголовки.Вставить("Content-Type", ContentType);
|
||||
КонецЕсли;
|
||||
@ -1480,7 +1486,7 @@
|
||||
Функция ОтправитьHTTPЗапрос(Сессия, ПодготовленныйЗапрос, Настройки)
|
||||
|
||||
СтруктураURL = РазобратьURL(ПодготовленныйЗапрос.URL);
|
||||
Соединение = ПолучитьСоединение(СтруктураURL, ПодготовленныйЗапрос.Аутентификация, Настройки, Сессия);
|
||||
Соединение = Соединение(СтруктураURL, ПодготовленныйЗапрос.Аутентификация, Настройки, Сессия);
|
||||
Ответ = Соединение.ВызватьHTTPМетод(ПодготовленныйЗапрос.Метод, ПодготовленныйЗапрос.HTTPЗапрос);
|
||||
|
||||
Для Каждого Обработчик Из ПодготовленныйЗапрос.СобытияНаОтвет Цикл
|
||||
@ -1521,25 +1527,27 @@
|
||||
Функция НеобходимоПовторитьЗапрос(Ответ, Настройки, ОшибкаВыполненияЗапроса)
|
||||
|
||||
Если Настройки.МаксимальноеКоличествоПовторов < 1 Тогда
|
||||
Возврат Ложь;
|
||||
ПовторитьЗапрос = Ложь;
|
||||
ИначеЕсли ОшибкаВыполненияЗапроса <> Неопределено ИЛИ ПовторятьПриКодеСостояния(Ответ.КодСостояния, Настройки) Тогда
|
||||
ПовторитьЗапрос = Истина;
|
||||
Иначе
|
||||
ЗаголовокRetryAfter = ЗначениеЗаголовка("retry-after", Ответ.Заголовки);
|
||||
ПовторитьЗапрос = ЗаголовокRetryAfter <> Ложь
|
||||
И ЭтоКодСостоянияПриКоторомНужноУчитыватьЗаголовокRetryAfter(Ответ.КодСостояния);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ПовторитьЗапрос;
|
||||
|
||||
Если ОшибкаВыполненияЗапроса <> Неопределено Тогда
|
||||
Возврат Истина;
|
||||
КонецЕсли;
|
||||
КонецФункции
|
||||
|
||||
Функция ПовторятьПриКодеСостояния(КодСостояния, Настройки)
|
||||
|
||||
ПовторПриЛюбомКодеСостоянияБольшеИлиРавным500 = Настройки.ПовторятьДляКодовСостояний = Неопределено
|
||||
И Ответ.КодСостояния >= КодыСостоянияHTTP().ВнутренняяОшибкаСервера_500;
|
||||
И КодСостояния >= КодыСостоянияHTTP().ВнутренняяОшибкаСервера_500;
|
||||
КодСостоянияСоответствуетКодуСостоянияПовтора = ТипЗнч(Настройки.ПовторятьДляКодовСостояний) = Тип("Массив")
|
||||
И Настройки.ПовторятьДляКодовСостояний.Найти(Ответ.КодСостояния) <> Неопределено;
|
||||
Если ПовторПриЛюбомКодеСостоянияБольшеИлиРавным500 ИЛИ КодСостоянияСоответствуетКодуСостоянияПовтора Тогда
|
||||
Возврат Истина;
|
||||
КонецЕсли;
|
||||
|
||||
ЗаголовокRetryAfter = ПолучитьЗначениеЗаголовка("retry-after", Ответ.Заголовки);
|
||||
Возврат ЗаголовокRetryAfter <> Ложь
|
||||
И ЭтоКодСостоянияПриКоторомНужноУчитыватьЗаголовокRetryAfter(Ответ.КодСостояния);
|
||||
|
||||
И Настройки.ПовторятьДляКодовСостояний.Найти(КодСостояния) <> Неопределено;
|
||||
Возврат ПовторПриЛюбомКодеСостоянияБольшеИлиРавным500 ИЛИ КодСостоянияСоответствуетКодуСостоянияПовтора;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ОтправитьЗапрос(Сессия, ПодготовленныйЗапрос, Настройки)
|
||||
@ -1572,7 +1580,7 @@
|
||||
ИЛИ НЕ ЭтоКодСостоянияПриКоторомНужноУчитыватьЗаголовокRetryAfter(Ответ.КодСостояния) Тогда
|
||||
ЗаголовокRetryAfter = Ложь;
|
||||
Иначе
|
||||
ЗаголовокRetryAfter = ПолучитьЗначениеЗаголовка("retry-after", Ответ.Заголовки);
|
||||
ЗаголовокRetryAfter = ЗначениеЗаголовка("retry-after", Ответ.Заголовки);
|
||||
КонецЕсли;
|
||||
ДлительностьПриостановки = РассчитатьДлительностьПриостановки(
|
||||
Повтор,
|
||||
@ -1586,7 +1594,7 @@
|
||||
ВызватьИсключение(ПодробноеПредставлениеОшибки(ОшибкаВыполненияЗапроса));
|
||||
КонецЕсли;
|
||||
|
||||
ЗаголовокContentType = ПолучитьЗначениеЗаголовка("content-type", Ответ.Заголовки);
|
||||
ЗаголовокContentType = ЗначениеЗаголовка("content-type", Ответ.Заголовки);
|
||||
Если ЗаголовокContentType = Ложь Тогда
|
||||
ЗаголовокContentType = "";
|
||||
КонецЕсли;
|
||||
@ -1597,7 +1605,7 @@
|
||||
ПодготовленныйОтвет.Вставить("Заголовки", Ответ.Заголовки);
|
||||
ПодготовленныйОтвет.Вставить("ЭтоПостоянныйРедирект", ЭтоПостоянныйРедирект(Ответ.КодСостояния, Ответ.Заголовки));
|
||||
ПодготовленныйОтвет.Вставить("ЭтоРедирект", ЭтоРедирект(Ответ.КодСостояния, Ответ.Заголовки));
|
||||
ПодготовленныйОтвет.Вставить("Кодировка", ПолучитьКодировкуИзЗаголовка(ЗаголовокContentType));
|
||||
ПодготовленныйОтвет.Вставить("Кодировка", КодировкаИзЗаголовка(ЗаголовокContentType));
|
||||
ПодготовленныйОтвет.Вставить("Тело", Ответ.ПолучитьТелоКакДвоичныеДанные());
|
||||
ПодготовленныйОтвет.Вставить("КодСостояния", Ответ.КодСостояния);
|
||||
ПодготовленныйОтвет.Вставить("URL", ПодготовленныйЗапрос.URL);
|
||||
@ -1774,7 +1782,7 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ПолучитьЗначениеЗаголовка(Заголовок, ВсеЗаголовки, Ключ = Неопределено)
|
||||
Функция ЗначениеЗаголовка(Заголовок, ВсеЗаголовки, Ключ = Неопределено)
|
||||
|
||||
Для Каждого ОчереднойЗаголовок Из ВсеЗаголовки Цикл
|
||||
Если НРег(ОчереднойЗаголовок.Ключ) = НРег(Заголовок) Тогда
|
||||
@ -1791,8 +1799,8 @@
|
||||
|
||||
КодыСостоянияHTTP = КодыСостоянияHTTP();
|
||||
|
||||
Возврат ЕстьЗаголовокLocation(Заголовки) И
|
||||
(КодСостояния = КодыСостоянияHTTP.ПеремещеноНавсегда_301
|
||||
Возврат ЕстьЗаголовокLocation(Заголовки)
|
||||
И (КодСостояния = КодыСостоянияHTTP.ПеремещеноНавсегда_301
|
||||
ИЛИ КодСостояния = КодыСостоянияHTTP.ПостоянноеПеренаправление_308);
|
||||
|
||||
КонецФункции
|
||||
@ -1814,11 +1822,11 @@
|
||||
|
||||
Функция ЕстьЗаголовокLocation(Заголовки)
|
||||
|
||||
Возврат ПолучитьЗначениеЗаголовка("location", Заголовки) <> Ложь;
|
||||
Возврат ЗначениеЗаголовка("location", Заголовки) <> Ложь;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьКодировкуИзЗаголовка(Знач Заголовок)
|
||||
Функция КодировкаИзЗаголовка(Знач Заголовок)
|
||||
|
||||
Кодировка = Неопределено;
|
||||
|
||||
@ -1868,7 +1876,7 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьЗащищенноеСоединение(ДополнительныеПараметры)
|
||||
Функция ОбъектЗащищенногоСоединения(ДополнительныеПараметры)
|
||||
|
||||
Если ДополнительныеПараметры.ПроверятьSSL = Ложь Тогда
|
||||
СертификатыУЦ = Неопределено;
|
||||
@ -1887,7 +1895,7 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьСоединение(ПараметрыСоединения, Аутентификация, ДополнительныеПараметры, Сессия)
|
||||
Функция Соединение(ПараметрыСоединения, Аутентификация, ДополнительныеПараметры, Сессия)
|
||||
|
||||
Если Не ЗначениеЗаполнено(ПараметрыСоединения.Порт) Тогда
|
||||
Если ПараметрыСоединения.Схема = "https" Тогда
|
||||
@ -1899,7 +1907,7 @@
|
||||
|
||||
ЗащищенноеСоединение = Неопределено;
|
||||
Если ПараметрыСоединения.Схема = "https" Тогда
|
||||
ЗащищенноеСоединение = ПолучитьЗащищенноеСоединение(ДополнительныеПараметры);
|
||||
ЗащищенноеСоединение = ОбъектЗащищенногоСоединения(ДополнительныеПараметры);
|
||||
КонецЕсли;
|
||||
|
||||
Пользователь = "";
|
||||
@ -1932,7 +1940,7 @@
|
||||
КонецЕсли;
|
||||
ПулСоединений = Сессия.СлужебныеДанные.ПулСоединений;
|
||||
|
||||
ИдентификаторСоединения = ПолучитьИдентификаторСоединения(ПараметрыДляРасчетаИдентификатора);
|
||||
ИдентификаторСоединения = ИдентификаторСоединения(ПараметрыДляРасчетаИдентификатора);
|
||||
|
||||
Если ПулСоединений.Получить(ИдентификаторСоединения) = Неопределено Тогда
|
||||
НовоеСоединение = Новый HTTPСоединение(
|
||||
@ -1950,7 +1958,7 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьИдентификаторСоединения(ПараметрыСоединения)
|
||||
Функция ИдентификаторСоединения(ПараметрыСоединения)
|
||||
|
||||
ПараметрыДляРасчетаИдентификатора = Новый Массив;
|
||||
|
||||
@ -1988,7 +1996,7 @@
|
||||
Возврат ОсновноеЗначение;
|
||||
КонецЕсли;
|
||||
|
||||
Значение = ПолучитьЗначениеПоКлючу(ДополнительныеЗначения, Ключ);
|
||||
Значение = ЗначениеПоКлючу(ДополнительныеЗначения, Ключ);
|
||||
Если Значение <> Неопределено Тогда
|
||||
Возврат Значение;
|
||||
КонецЕсли;
|
||||
@ -2083,7 +2091,7 @@
|
||||
|
||||
Функция ДополнитьПараметрыПреобразованияJSON(ПараметрыПреобразования)
|
||||
|
||||
ПараметрыПреобразованияJSON = ПолучитьПараметрыПреобразованияJSONПоУмолчанию();
|
||||
ПараметрыПреобразованияJSON = ПараметрыПреобразованияJSONПоУмолчанию();
|
||||
Если ЗначениеЗаполнено(ПараметрыПреобразования) Тогда
|
||||
Для Каждого Параметр Из ПараметрыПреобразования Цикл
|
||||
Если ПараметрыПреобразованияJSON.Свойство(Параметр.Ключ) Тогда
|
||||
@ -2098,7 +2106,7 @@
|
||||
|
||||
Функция ДополнитьПараметрыЗаписиJSON(ПараметрыЗаписи)
|
||||
|
||||
ПараметрыЗаписиJSON = ПолучитьПараметрыЗаписиJSONПоУмолчанию();
|
||||
ПараметрыЗаписиJSON = ПараметрыЗаписиJSONПоУмолчанию();
|
||||
Если ЗначениеЗаполнено(ПараметрыЗаписи) Тогда
|
||||
Для Каждого Параметр Из ПараметрыЗаписи Цикл
|
||||
Если ПараметрыЗаписиJSON.Свойство(Параметр.Ключ) Тогда
|
||||
@ -2113,7 +2121,7 @@
|
||||
|
||||
#Область АутентификацияAWS4
|
||||
|
||||
Функция ПолучитьКлючПодписиAWS4(СекретныйКлюч, Дата, Регион, Сервис)
|
||||
Функция КлючПодписиAWS4(СекретныйКлюч, Дата, Регион, Сервис)
|
||||
|
||||
КлючДата = ПодписатьСообщениеHMAC("AWS4" + СекретныйКлюч, Дата);
|
||||
КлючРегион = ПодписатьСообщениеHMAC(КлючДата, Регион);
|
||||
@ -2142,7 +2150,7 @@
|
||||
|
||||
Процедура ПодготовитьАутентификациюAWS4(ПодготовленныйЗапрос)
|
||||
|
||||
ЗначениеЗаголовка = ПолучитьЗначениеЗаголовка("x-amz-date", ПодготовленныйЗапрос.Заголовки);
|
||||
ЗначениеЗаголовка = ЗначениеЗаголовка("x-amz-date", ПодготовленныйЗапрос.Заголовки);
|
||||
Если ЗначениеЗаголовка <> Ложь Тогда
|
||||
ТекущееВремя = Дата(СтрЗаменить(СтрЗаменить(ЗначениеЗаголовка, "T", ""), "Z", ""));
|
||||
Иначе
|
||||
@ -2156,10 +2164,10 @@
|
||||
|
||||
СтруктураURL = РазобратьURL(ПодготовленныйЗапрос.URL);
|
||||
|
||||
КаноническиеЗаголовки = ПолучитьКаноническиеЗаголовкиAWS4(ПодготовленныйЗапрос.Заголовки, СтруктураURL);
|
||||
КаноническиеЗаголовки = КаноническиеЗаголовкиAWS4(ПодготовленныйЗапрос.Заголовки, СтруктураURL);
|
||||
|
||||
КаноническийПуть = СтруктураURL.Путь;
|
||||
КаноническиеПараметрыЗапроса = ПолучитьКаноническиеПараметрыЗапросаAWS4(СтруктураURL.ПараметрыЗапроса);
|
||||
КаноническиеПараметрыЗапроса = КаноническиеПараметрыЗапросаAWS4(СтруктураURL.ПараметрыЗапроса);
|
||||
|
||||
ЧастиЗапроса = Новый Массив;
|
||||
ЧастиЗапроса.Добавить(ПодготовленныйЗапрос.Метод);
|
||||
@ -2184,7 +2192,7 @@
|
||||
ЧастиСтрокиДляПодписи.Добавить(ХешированиеДанных(ХешФункция.SHA256, КаноническийЗапрос));
|
||||
СтрокаДляПодписи = СтрСоединить(ЧастиСтрокиДляПодписи, Символы.ПС);
|
||||
|
||||
Ключ = ПолучитьКлючПодписиAWS4(
|
||||
Ключ = КлючПодписиAWS4(
|
||||
ПодготовленныйЗапрос.Аутентификация.СекретныйКлюч,
|
||||
ОбластьДействияДата,
|
||||
ПодготовленныйЗапрос.Аутентификация.Регион,
|
||||
@ -2224,7 +2232,7 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьКаноническиеЗаголовкиAWS4(Заголовки, СтруктураURL)
|
||||
Функция КаноническиеЗаголовкиAWS4(Заголовки, СтруктураURL)
|
||||
|
||||
Список = Новый СписокЗначений;
|
||||
|
||||
@ -2271,7 +2279,7 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьКаноническиеПараметрыЗапросаAWS4(ПараметрыЗапроса)
|
||||
Функция КаноническиеПараметрыЗапросаAWS4(ПараметрыЗапроса)
|
||||
|
||||
Список = Новый СписокЗначений;
|
||||
Для Каждого ОчереднойПараметрЗапроса Из ПараметрыЗапроса Цикл
|
||||
@ -2515,7 +2523,7 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Значение = ПолучитьЗначениеЗаголовка("www-authenticate", Ответ.Заголовки);
|
||||
Значение = ЗначениеЗаголовка("www-authenticate", Ответ.Заголовки);
|
||||
Если Значение <> Ложь И СтрНайти(НРег(Значение), "digest") Тогда
|
||||
Позиция = СтрНайти(НРег(Значение), "digest");
|
||||
Значение = Сред(Значение, Позиция + СтрДлина("digest") + 1);
|
||||
@ -2542,15 +2550,17 @@
|
||||
|
||||
Алгоритм = ВРег(Алгоритм);
|
||||
Если Не ЗначениеЗаполнено(Алгоритм) ИЛИ Алгоритм = "MD5" ИЛИ Алгоритм = "MD5-SESS" Тогда
|
||||
Возврат ХешФункция.MD5;
|
||||
АлгоритмХеширования = ХешФункция.MD5;
|
||||
ИначеЕсли Алгоритм = "SHA" Тогда
|
||||
Возврат ХешФункция.SHA1;
|
||||
АлгоритмХеширования = ХешФункция.SHA1;
|
||||
ИначеЕсли Алгоритм = "SHA-256" Тогда
|
||||
Возврат ХешФункция.SHA256;
|
||||
АлгоритмХеширования = ХешФункция.SHA256;
|
||||
Иначе
|
||||
Возврат Неопределено;
|
||||
АлгоритмХеширования = Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат АлгоритмХеширования;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПодготовитьЗаголовокDigest(Сессия, ПодготовленныйЗапрос)
|
||||
@ -2667,7 +2677,7 @@
|
||||
|
||||
Функция РаспаковатьОтвет(Ответ)
|
||||
|
||||
Заголовок = ПолучитьЗначениеЗаголовка("content-encoding", Ответ.Заголовки);
|
||||
Заголовок = ЗначениеЗаголовка("content-encoding", Ответ.Заголовки);
|
||||
Если Заголовок <> Ложь Тогда
|
||||
Если НРег(Заголовок) = "gzip" Тогда
|
||||
Возврат ПрочитатьGZip(Ответ.Тело);
|
||||
@ -2680,7 +2690,7 @@
|
||||
|
||||
Процедура УпаковатьЗапрос(Запрос)
|
||||
|
||||
Заголовок = ПолучитьЗначениеЗаголовка("content-encoding", Запрос.Заголовки);
|
||||
Заголовок = ЗначениеЗаголовка("content-encoding", Запрос.Заголовки);
|
||||
Если Заголовок <> Ложь Тогда
|
||||
Если НРег(Заголовок) = "gzip" Тогда
|
||||
Запрос.УстановитьТелоИзДвоичныхДанных(ЗаписатьGZip(Запрос.ПолучитьТелоКакДвоичныеДанные()));
|
||||
@ -2718,7 +2728,7 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьПараметрыПреобразованияJSONПоУмолчанию()
|
||||
Функция ПараметрыПреобразованияJSONПоУмолчанию()
|
||||
|
||||
ПараметрыПреобразованияПоУмолчанию = Новый Структура;
|
||||
ПараметрыПреобразованияПоУмолчанию.Вставить("ПрочитатьВСоответствие", Истина);
|
||||
@ -2729,7 +2739,7 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьПараметрыЗаписиJSONПоУмолчанию()
|
||||
Функция ПараметрыЗаписиJSONПоУмолчанию()
|
||||
|
||||
ПараметрыЗаписиJSONПоУмолчанию = Новый Структура;
|
||||
ПараметрыЗаписиJSONПоУмолчанию.Вставить("ПереносСтрок", ПереносСтрокJSON.Авто);
|
||||
|
Loading…
Reference in New Issue
Block a user