我有一个 Web API 方法,看起来有点像这样:
[HttpPost]
public ResponseMessageResult Post(Thing thing)
{
var content = "\r";
var httpResponseMessage = Request.CreateResponse(HttpStatusCode.Accepted, content);
return ResponseMessage(httpResponseMessage);
}
在其他一些客户端代码中,当我调用时:
var content = httpResponseMessage.Content.ReadAsStringAsync().Result;
content
is:
"\\r"
但我希望它保持原来的样子:
"\r"
为什么客户端会收到双重转义字符串以及如何防止这种情况发生?
我知道这样做可能会导致执行 70 行代码(对不起 Darrel Miller),但我发现它同样有效,并且对我选择的开发模式的破坏性较小:
response.Content.ReadAsAsync<string>().Result;
or
await response.Content.ReadAsAsync<string>();
而不是这个(转义引号):
response.Content.ReadAsStringAsync().Result;
注:ReadAsAsync
是一个扩展方法System.Net.Http.HttpContentExtensions
, 在里面System.Net.Http.Formatting
集会。如果您的项目中不可用,您可以添加 NuGet 包Microsoft.AspNet.WebApi.Client https://www.nuget.org/packages/microsoft.aspnet.webapi.client.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)