Как установить кодировку заголовка Content-Type в OpenRasta

Когда я возвращаю свой объект как JSON через JsonDataContractCodec, OpenRasta устанавливает заголовок Content-Type в

Применение / JSON

но игнорирует часть кодировки типа содержимого.

Когда я использую Chrome, он отправляет запрос GET с следующим заголовком:

Accept-Charset: Windows-1251, UTF-8; д =0,7,*; д =0,3

и все мои объекты json в кодировке utf-8 идут не так.

Я попытался переопределить OperationResult безуспешно. OpenRasta перезаписывает мой заголовок кодом заголовка.

1 ответ

Решение

Просто нашел способ - унаследовать от JsonCoder и применить MediaTypeAttribute:

[MediaType("application/json; charset=utf8")]
public class JsonWithEncoding:JsonDataContractCodec
{

}

И зарегистрировать обработчик с помощью:

ResourceSpace.Has
  .ResourcesOfType<IEnumerable<ProfileResource>>()
  .AtUri("/profiles")
  .HandledBy<ProfileHandler>()
  .TranscodedBy<JsonWithEncoding>();

Но этот способ очень статичен:(

Другие вопросы по тегам