首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将XML4WebAPI返回到ASP.NET Core2应用程序?

如何将XML4WebAPI返回到ASP.NET Core2应用程序?
EN

Stack Overflow用户
提问于 2018-08-10 07:49:54
回答 1查看 344关注 0票数 1

我有两个应用程序。一个请求客户端应用程序是用ASP.NET Core2编写的(我们可以称其为“客户端”),一个响应/ API应用程序是用ASP.NET 4WebAPI编写的(我们可以称其为“服务器”)。前者向后者发出请求,而我希望从web API应用程序接收并随后解析XML。

客户端使用以下设置发出HTTP请求:

代码语言:javascript
复制
HttpClient httpClient = new HttpClient()
{
    BaseAddress = new Uri(communicatorUri)
};
httpClient.DefaultRequestHeaders.Add("Accept", "application/xml");

HttpResponseMessage responseMessage = await this.HttpClient.PutAsync(
    "api/customer",
    new StringContent(customerDetails.ToString(), Encoding.UTF8, "application/json")
);

它通过JSON发送,并等待XML响应。服务器正在处理JSON,并且希望返回一个XML响应:

代码语言:javascript
复制
string response = "<note>Well formed XML string</note>";
return Ok(response);

此响应返回到客户端的位置:

代码语言:javascript
复制
string responseString = await responseMessage.Content.ReadAsStringAsync();
XDocument xml = XDocument.Parse(responseString);

但是,每次返回响应时,它看起来就像是使用\"的双重编码。例如,它可能看起来像"\"<note attr=\\\"test\\\">Well formed XML string</note>",因此随后它显然不再是有效的XML,因此通过抛出异常导致解析失败。

我从哪里开始实际解决这个问题呢?我有点困惑,我不知道我是否需要改变我的请求者,或者我的响应,甚至两者都需要。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-10 09:16:38

更新服务器上的控制器:

代码语言:javascript
复制
public HttpResponseMessage Get()
{
  //process the request 
  .........

  string XML="<note><body>Message content</body></note>";
  return new HttpResponseMessage() 
  { 
    Content = new StringContent(XML, Encoding.UTF8, "application/xml") 
  };
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51777156

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档