将XML作为HTTP响应返回

时间:2009-09-08 10:56:12

标签: asp.net xml http

我被赋予了一项看似简单的任务。

当请求给定的URL时,响应应该只是一些有效的XML。

我如何实现这一目标?

URL将包含所有必要的代码,以获取数据并构造正确的XML字符串。那你怎么继续操纵响应只返回这个字符串呢?调用者正在接收XML字符串并使用它填充数据库,我只需要提供项目的这一部分。

由于

5 个答案:

答案 0 :(得分:9)

看看这个:

Response.Clear();
Response.Write(yourXml);
Response.ContentType = "text/xml";
Response.End();

答案 1 :(得分:2)

我会选择HttpHandler。这样你就可以绕过所有asp.net控件创建等等,这对性能更好,因为你不会输出任何html,所以使用实际的aspx页面是没有意义的。

答案 2 :(得分:1)

假设您已创建XML字符串,则可以清除响应并将字符串写出来。

Response.Clear();
Response.ContentType = "text/xml";
Response.Write(myXMLString);

答案 3 :(得分:1)

如果您不想使用完整的网络服务,那么您可以执行以下操作:

private void Page_Load(object sender, System.EventArgs e)
{

    Response.ContentType = "text/xml";

    //get data from somewhere...
    Response.Write(data);

  }
}

使用图片http://www.informit.com/guides/content.aspx?g=dotnet&seqNum=325

在此处查看类似内容

答案 4 :(得分:0)

以下是将xml数据作为回复发送到浏览器的方式。

  StringBuilder xmlBuilder = new StringBuilder();

        xmlBuilder.Append("<Books>");
        xmlBuilder.Append("<Book>");
        xmlBuilder.Append("Maths");
        xmlBuilder.Append("</Book>");
        xmlBuilder.Append("</Books>");

        context.Response.ContentType = "text/xml";

        context.Response.BinaryWrite(Encoding.UTF8.GetBytes(xmlBuilder.ToString()));
        context.Response.End();