Имя: Пароль:
1C
 
HTTPСервисОтвет вопросики вместо текста
0 Альбатрос
 
21.06.22
14:48
Если ПустаяСтрока(РезультатОбработки.ТекстОшибки) Тогда
        Ответ = Новый HTTPСервисОтвет(200);
    Иначе
        Ответ = Новый HTTPСервисОтвет(500);
        Ответ.Причина = РезультатОбработки.ТекстОшибки;
КонецЕсли;


При ошибке текст в причине статуса отражается вопросиками. Его как то форматировать надо правильно?
1 Альбатрос
 
21.06.22
14:50
Проверяю через Postman
2 asady
 
21.06.22
15:40
(0) кодировка не UTF8
3 Альбатрос
 
21.06.22
15:44
(2) а как перекодировать? Методом кодироватьСтроку()?
4 arsik
 
гуру
21.06.22
15:54
Ну можно попробовать как ни будь так
Ответ = Новый HTTPСервисОтвет(200);
Ответ.Заголовки.Вставить("Content-Type","application/json; charset=utf-8");
Ответ.УстановитьТелоИзСтроки(РезультатСериализации.ТекстJSON, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);
5 Альбатрос
 
21.06.22
16:03
(4) Ну это тело ответа объявлять) Мне вот достаточно причины) Но в целом как вариант конечно
6 Альбатрос
 
21.06.22
16:03
Заголовки еще)
7 arsik
 
гуру
21.06.22
16:07
(6) Мне кажется туту работает так.
Если вы отправляете
Ответ = Новый HTTPСервисОтвет(500);
Ответ.Причина = РезультатОбработки.ТекстОшибки;

то кодировка будет та, которая по умолчанию стоит на вебсервере. Значит нужно покурить мануалы к апачу или иис.
Ну или принудительно указать кодировку.
Возможно заголовка хватит.
8 Альбатрос
 
21.06.22
17:23
Вобщем, так как это метод НТТР сервиса, решилось вот так:

Если ПустаяСтрока(РезультатОбработки.ТекстОшибки) Тогда
        Ответ = Новый HTTPСервисОтвет(200);
    Иначе
        ВызватьИсключение = РезультатОбработки.ТекстОшибки;
КонецЕсли;

Вот так норм кодировка)
9 arsik
 
гуру
22.06.22
14:22
(8) Это буээээ.
Что в этом случае с пулом http соединений будет?
AdBlock убивает бесплатный контент. 1Сергей