【问题标题】:Wrap XML Output on ASP.NET Web API在 ASP.NET Web API 上包装 XML 输出
【发布时间】:2013-07-19 15:24:49
【问题描述】:

所以我正在开发一个 Roku 频道将与之交互以发送和接收数据的 Web API。 Roku SDK 有一个易于使用的内置 XML Parser,但唯一的问题是 Roku 只会解析包装在 <rsp stat="ok"></rsp> 元素中的 XML。我看不到如何或在何处覆盖 Web API 上的 XML 输出以使用 <rsp> 元素包装它。

所以我的问题是,如何覆盖 XML 格式化程序并在输出之前插入 <rsp stat="ok">,在之后插入 </rsp>

【问题讨论】:

  • 嗨,你知道,Roku Side 中的响应句柄需要多长时间?

标签: xml-parsing asp.net-web-api xml-serialization roku


【解决方案1】:

如果您通过像这样删除 JSON 格式化程序来确保只返回 XML

config.Formatters.Remove(config.Formatters.JsonFormatter);

您可以使用消息处理程序为所有这样的响应盲目添加信封。

public class MyHandler : DelegatingHandler
{
    protected override async Task<HttpResponseMessage> SendAsync(
                                       HttpRequestMessage request,
                                            CancellationToken cancellationToken)
    {
        var response = await base.SendAsync(request, cancellationToken);
        string responseBody = "<rsp stat=\"ok\">" + 
                                  await response.Content.ReadAsStringAsync() +
                              "</rsp>";
        response.Content = new StringContent(
                          responseBody, Encoding.UTF8, "application/xml");
        return response;
    }
}

【讨论】:

  • 正是我想要的。谢谢!
猜你喜欢
  • 2023-03-10
  • 1970-01-01
  • 2012-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-05
  • 1970-01-01
  • 2023-03-28
相关资源
最近更新 更多