我在c#app中运行HttpListener,它收到HTTP GET请求,其中包含以下定义的
Content-Type: text/plain;charset=utf-8
根据ContentEncoding property的MSDN文档,描述如下:
Encoding对象可用于将字节序列转换为字符集(代码页),将字符转换为字节序列。 此属性使用Content-Type标头中的charset值来确定编码。如果该信息不可用,则此属性将返回Encoding.Default。
当我查看请求的Content-Encoding属性时,它仍然返回默认的ISO而不是定义的UTF-8编码。
我是否遗漏了某些内容,或者这个属性是否仅仅是MS网站的错误信息?
答案 0 :(得分:0)
看来如果你没有在你的请求中设置Content-Lenght,那么HttpListener将绕过Content-Type的charset,导致我在问题中描述的问题。解决方案是将Content-Lenght设置为至少1(在PostMan中这个标题是受限制的,因此在那里解决方法是在正文中添加一个空格。我不知道还是可以解决获取请求的问题)。