публикация исходной ИБ (crm) с повторным использованием сеансов отвечает HTTP 400 без заголовка сеанса
This commit is contained in:
@@ -4,6 +4,17 @@
|
||||
|
||||
---
|
||||
|
||||
## 1.3.1.54 (2026-08-11)
|
||||
|
||||
### Исправлено
|
||||
|
||||
- `РК_ОбменСВнешнейБазой`: заголовок `IBSession: start` при вызовах Transfer API —
|
||||
иначе публикация с повторным использованием сеансов отвечает HTTP 400
|
||||
(«Не указан заголовок управления сеансами…»).
|
||||
- Краткий текст ошибки HTTP (из `<descr>` XML-ответа платформы) для формы проверки.
|
||||
|
||||
---
|
||||
|
||||
## 1.3.1.53 (2026-08-11)
|
||||
|
||||
### Исправлено
|
||||
|
||||
@@ -99,6 +99,8 @@
|
||||
// Р.Успех, Р.Текст, Р.Ответ, Р.Ошибка — GET /v1/health через РК_ОбменСВнешнейБазой
|
||||
```
|
||||
|
||||
HTTP-клиент передаёт `IBSession: start` (публикация с повторным использованием сеансов) и `X-Transfer-Token`.
|
||||
|
||||
Пара: расширение **`ws-rhana`** на исходной ИБ (≥ 0.0.0.30 для складов/остатков; health — с ранних версий).
|
||||
|
||||
### Обработки и формы
|
||||
|
||||
@@ -158,6 +158,8 @@
|
||||
?(Разбор.HTTPS, Новый ЗащищенноеСоединениеOpenSSL(), Неопределено));
|
||||
|
||||
ЗапросHTTP = Новый HTTPЗапрос(ПутьЗапроса);
|
||||
// Повторное использование сеансов HTTP на публикации 1С (иначе HTTP 400 без IBSession).
|
||||
ЗапросHTTP.Заголовки.Вставить("IBSession", "start");
|
||||
// X-Transfer-Token не конфликтует с Basic Auth пользователя публикации (см. README ws-rhana).
|
||||
Если Не ПустаяСтрока(Ключ) Тогда
|
||||
ЗапросHTTP.Заголовки.Вставить("X-Transfer-Token", Ключ);
|
||||
@@ -187,7 +189,7 @@
|
||||
Если ОтветHTTP.КодСостояния < 200 Или ОтветHTTP.КодСостояния >= 300 Тогда
|
||||
ЗаписьЖурналаРегистрации("РК_ОбменСВнешнейБазой", УровеньЖурналаРегистрации.Ошибка, , ,
|
||||
"HTTP " + ОтветHTTP.КодСостояния + " " + Относительный + ": " + ТекстОтвета);
|
||||
ВызватьИсключение "Ошибка HTTP " + ОтветHTTP.КодСостояния + ": " + ТекстОтвета;
|
||||
ВызватьИсключение КраткийТекстОшибкиHTTP(ОтветHTTP.КодСостояния, ТекстОтвета);
|
||||
КонецЕсли;
|
||||
|
||||
Чтение = Новый ЧтениеJSON;
|
||||
@@ -228,4 +230,24 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция КраткийТекстОшибкиHTTP(КодСостояния, ТекстОтвета)
|
||||
|
||||
Описание = СокрЛП(Строка(ТекстОтвета));
|
||||
ПозицияDescr = СтрНайти(Описание, "<descr>");
|
||||
Если ПозицияDescr > 0 Тогда
|
||||
Хвост = Сред(Описание, ПозицияDescr + 7);
|
||||
ПозицияКонец = СтрНайти(Хвост, "</descr>");
|
||||
Если ПозицияКонец > 0 Тогда
|
||||
Описание = СокрЛП(Лев(Хвост, ПозицияКонец - 1));
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Если СтрДлина(Описание) > 500 Тогда
|
||||
Описание = Лев(Описание, 500) + "…";
|
||||
КонецЕсли;
|
||||
|
||||
Возврат "Ошибка HTTP " + КодСостояния + ": " + Описание;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
Reference in New Issue
Block a user