[英]How do I return pure XML from asmx web service?
我想要一个带有GetPeople()方法的asmx webservice,它返回以下XML(不是SOAP响应):
<People>
<Person>
<FirstName>Sara</FirstName>
<LastName>Smith</LastName>
</Person>
<Person>
<FirstName>Bill</FirstName>
<LastName>Wilson</LastName>
</Person>
</People>
我怎样才能做到这一点?
查看使用[ScriptMethod]
属性。
如果您不希望Response位于SOAP信封中,您是否也不想使用SOAP调用Web服务。 例如,您不是创建代理类Web引用等,只是使用http post或调用Web服务?
如果是这样,而不是编写Web服务,请编写ASHX处理程序文件。 然后,您可以简单地将Response.ContentType设置为text / xml并执行Response.Write(XmlDocument.ToString())。 这将返回纯粹的未填充XML以及相关的http标头。
我看到我可以将方法的返回类型设置为XmlDocument。 这似乎有效。
[WebMethod]
public XmlDocument ReturnXml()
{
XmlDocument dom = new XmlDocument();
XmlElement people = dom.CreateElement("People");
dom.AppendChild(people);
XmlElement person = dom.CreateElement("Person");
people.AppendChild(person);
XmlElement firstName = dom.CreateElement("FirstName");
person.AppendChild(firstName);
XmlText text = dom.CreateTextNode("Bob");
firstName.AppendChild(text);
// load some XML ...
return dom;
}
您可以使用Soap Extensions来创建/自定义您的需求。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.