如何设置一个场景,其中一个网站在x上发布了一个URL,该网站将浏览时将纯粹返回XML。
其他地方的网页将击中此URL,将XML加载到对象中。
所以我想要一个url,例如http://www.xml.com/document.aspx?id=1
另一个网站将使用Webresponse和WebRequest对象从上页获得响应,我希望响应是一个不错的XML,因此我可以使用XML来填充对象。
我确实有一些工作,但是响应包含渲染页面所需的所有HTML,实际上我只希望XML作为响应。
可能是使用httphandler/ashx文件的最佳方法,但是如果您想使用页面进行操作,那是完全可能的。这两个要点是:
- 使用一个空页面。您想要在ASPX的标记中想要的只是<%page ...%>指令。
- 设置响应流的内容类型到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();