如何在OpenRasta中设置Content-Type标头字符集

时间:2011-02-16 12:03:23

标签: .net rest http-headers openrasta

当我通过JsonDataContractCodec将对象作为JSON返回时,OpenRasta将Content-Type标头设置为

  

application / json

但忽略内容类型的charset部分。

当我使用Chrome时,它会发送带有以下标题的GET请求:

  

接收字符集:窗口-1251,UTF-8,Q = 0.7,*; Q = 0.3

我所有的utf-8编码的json对象出错了。

我试图在没有运气的情况下覆盖OperationResult。 OpenRasta用编解码器的一个覆盖我的标题。

1 个答案:

答案 0 :(得分:0)

刚刚找到一种方法 - 从JsonCoder继承并应用MediaTypeAttribute

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

}

注册处理程序:

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

但这种方式非常静态:(