0

如何设置一个场景,其中托管在 X 上的一个网站发布一个 URL,当浏览到该 URL 时将返回纯 XML。

其他地方的网页将访问此 URL,将 XML 加载到对象中。

所以我想要一个像http://www.xml.com/document.aspx?id=1这样的网址

另一个站点将使用 webresponse 和 webrequest 对象从上面的页面获取响应,我希望响应是好的 XML,所以我可以使用 XML 来填充对象。

我确实得到了一些工作,但响应包含呈现页面所需的所有 HTML,我实际上只想要 XML 作为响应。

4

1 回答 1

0

可能最好的方法是使用 HttpHandler/ASHX 文件,但如果你想用页面来做,那是完全可能的。两个关键点是:

  1. 使用空白页面。您在 ASPX 的标记中想要的只是 <% Page ... %> 指令。
  2. 将 Response 流的 ContentType 设置为 XML -Response.ContentType = "text/xml"

如何生成 XML 本身取决于您,但如果 XML 表示对象图,您可以使用XmlSerializer(来自System.Xml.Serialization命名空间)将 XML 直接写入响应流,例如

using System.Xml.Serialization;

// New up a serialiser, passing in the System.Type we want to serialize
XmlSerializer serializer = new XmlSerializer(typeof(MyObject));

// Set the ContentType
Response.ContentType = "text/xml";

// Serialise the object to XML and pass it to the Response stream 
// to be returned to the client
serialzer.Serialize(Response.Output, MyObject);

如果您已经拥有 XML,那么一旦设置了 ContentType,您只需将其写入响应流,然后结束并刷新流。

// Set the ContentType
Response.ContentType = "text/xml";

Response.Write(myXmlString);

Response.Flush();
Response.End();
于 2012-10-23T11:22:16.593 回答