如何在HttpResponseMessage中设置内容编码

9

我想在HttpResponseMessage上设置Content-Encoding,但我找不到如何做的方法。给定这个WebApi操作:

public HttpResponseMessage Get()
{
    byte[] tile = GetTile();

    var result = new HttpResponseMessage(HttpStatusCode.OK) {Content = new ByteArrayContent(tile)};

    result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/x-protobuf");

    return result;
}

如何在头部设置Content-Encoding为gzip?

 result.Content.Headers.ContentEncoding

只读。

2个回答

11

ContentEncoding 属性是 ICollection 的一个实例。

这提供了 .Add().Clear() 方法来控制内容。


6

并不是要贬低richzilla的回答,他当然是完全正确且解决了我的问题。由于这个回答得到了一些投票和访问量,可能有其他人犯了和我一样的错误,所以值得说明一下,解决我的问题的完整答案是:

result.Content.Headers.ContentEncoding.Add("gzip");

根据浏览器的不同,如果已经存在另一种编码类型,则可能无法正常工作。您添加的第二个编码类型可能会被忽略。 - CodeOrElse
1
在这种情况下,在Add()之前执行Clear()。 - CodeOrElse

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接