HttpResponseMessage 文本/纯内容用引号括起来并转义

问题描述 投票:0回答:1

我创建了一个返回 TOML 配置文件的 webapi,当我查看 swagger/postman 中的输出时,输出正如我所期望的:

[systems."test 2"]
name = "testname"
organisation = "testorg"

但是当我用

HttpClient.GetAsync
读取
respose.Content.ReadAsStringAsync()
的响应时,数据用引号括起来,并且内容被转义:

"[systems.\"test 2\"]\r\nname = \"testname\"\r\norganisation = \"testorg\""

我尝试使用流读取器读取流,并得到相同的转义版本。我如何获取原始字符串以及为什么会发生这种情况? 我知道我可以使用

Regex.Unescape
来摆脱转义,但周围仍然有引号。我知道我可以删除它,但这一切看起来有点奇怪,我想知道为什么会发生这种情况

作为 WebAPI 中的参考,我只是返回 Ok(string) 的 IActionResult

.net escaping httpclient response
1个回答
0
投票

问题是我的

HttpClient
有接受应用程序/json的默认标头,因此它似乎试图将其解析为json,从而导致额外的转义层。

我通过更改创建

HttpRequestMessage
并将 Accept 标头设置为 text/plain 来解决此问题

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.