Имя: Пароль:
1C
1С v8
Http-сервис, проблема с заголовком ответа Content-Type
0 xulu
 
03.09.16
01:13
Привет. Подскажите пожалуйста по какой причине может не устанавливаться заголовок content-type когда я возвращаю ответ в http-сервисе?

Вот простой код:

Функция ВывестиСписокУслугgetServicesList(Запрос)
    МассивУслуг = Новый Массив;
    
    МассивУслуг.Добавить(Новый Структура("title, description", "Услуга №4", "Описание услуги №4"));
    
    ЗаписьJSON = Новый ЗаписьJSON;
    ЗаписьJSON.УстановитьСтроку();
    
    ЗаписатьJSON(ЗаписьJSON, МассивУслуг);
    
    СтрокаДляОтвета = ЗаписьJSON.Закрыть();
        
    Ответ = Новый HTTPСервисОтвет(200);    
    Ответ.Заголовки.Вставить("Content-type", "application/json;charset=utf-8");
    Ответ.УстановитьТелоИзСтроки(СтрокаДляОтвета, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);
        
    Возврат Ответ;
КонецФункции

Когдя я в браузере захожу по url то ответ приходит но там где русский текст выводятся кракозябры. Глянул заголовки ответа в инспекторе chrome, а там ответ пришел не как application/json а как text/plain. Хотя в коде я явно указываю что возвращать - "application/json" . Подскажите пожалуйста что я упустил? Заранее спасибо.
1 Бородатый Админ
 
04.09.16
16:39
Попробуй в другом браузере посмотреть, что именно отвечает сервер (ну или TelNet-ом), так как Chrome может и подмену сделать.
2 ramir
 
04.09.16
18:33
Content-Type в правильном регистре попробуй написать
3 Stepa86
 
04.09.16
19:27
У меня такой код замечательно работает

Ответ = Новый HTTPСервисОтвет(200);
Ответ.Заголовки.Вставить("Content-Type","application/json; charset=utf-8");
Ответ.УстановитьТелоИзСтроки( ЗаписьJSON.Закрыть() );
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший