WebAPI确保所有响应都是自动UTF8编码,以避免不必要的反弹&引号

本文关键字:不必要 引号 编码 响应 确保 UTF8 WebAPI | 更新日期: 2023-09-27 18:17:22

我们都知道WebAPI2默认倾向于在HttpResponseMessage Content消息中添加反斜杠和引号。

使用标准操作代码:

    public HttpResponseMessage Test()
    {
        return this.Request.CreateResponse(HttpStatusCode.OK, "Hello World");
    }

返回"'"Hello World'",显示"Hello World"(带引号)。

如果我改变API方法并添加编码:

    public HttpResponseMessage Test()
    {
        return new HttpResponseMessage()
        {
            StatusCode = HttpStatusCode.OK,
            Content = new StringContent("Hello World", System.Text.Encoding.UTF8, "application/json")
        };

,这就解决了问题,因为Content的结果变成了Hello World,但只是针对Test方法。

很好,但这只解决了Test方法的问题,而不是解决所有其他API方法的问题。

是否有一个简单而单一的方法来添加所有Controller动作的UTF8编码一次?

WebAPI确保所有响应都是自动UTF8编码,以避免不必要的反弹&引号

你似乎不明白什么是编码。找出答案,因为知道这一点很重要。编码是将字符串转换为字节的一种方法。

世界上没有任何编码添加反斜杠和引号。JSON添加它们。JSON是一种容器格式,就像XML。

如果你不想要JSON,就不要使用JSON。您不需要指定UTF8,因为它是默认的。字符串内容的默认。编写一个帮助器,以您喜欢的任何方式创建HttpResponseMessage。这样,您可以拥有任何您喜欢的复杂逻辑,并且仍然在一行中构造响应。