WebAPI返回XML
我想我的WEB API方法返回一个XML对象回调用应用程序。 目前它只是将XML作为字符串对象返回。 这是否是否? 如果是这样,你如何告诉webapi get方法它返回一个XML类型的对象?
谢谢
编辑:获取方法的一个例子:
[AcceptVerbs("GET")]
public HttpResponseMessage Get(int tenantID, string dataType, string ActionName)
{
List<string> SQLResult = MyWebSite_DataProvidor.DB.spReturnXMLData
("SELECT * FROM vwContactListing FOR XML AUTO, ELEMENTS").ToList();
string AllResults = "";
for (int i = 0; i < SQLResult.Count - 1; i++)
{
AllResults += SQLResult[i];
}
string sSyncData = "<?xml version="1.0"?> " + AllResults;
HttpResponseMessage response = new HttpResponseMessage();
response.Content = new StringContent(sSyncData);
return response;
}
它有点冒险,因为我仍然处于原型阶段。 当我证明它可行时,会重构。
如果您返回一个可序列化的对象,WebAPI将根据客户端发送的Accept头自动发送JSON或XML。
如果你返回一个字符串,你会得到一个字符串。
如果您不希望控制器决定返回对象类型,则应将方法返回类型设置为System.Net.Http.HttpResponseMessage
并使用以下代码返回XML。
public HttpResponseMessage Authenticate()
{
//process the request
.........
string XML="<note><body>Message content</body></note>";
return new HttpResponseMessage()
{
Content = new StringContent(XML, Encoding.UTF8, "application/xml")
};
}
这是始终从Web API返回XML的最快捷方式。
这是另一种与IHttpActionResult返回类型兼容的方法。 在这种情况下,我要求它使用XML序列化程序(可选)而不是Data Contract序列化程序,我使用了return ResponseMessage(
以便获得与IHttpActionResult兼容的返回结果:
return ResponseMessage(new HttpResponseMessage(HttpStatusCode.OK)
{
Content = new ObjectContent<SomeType>(objectToSerialize,
new System.Net.Http.Formatting.XmlMediaTypeFormatter {
UseXmlSerializer = true
})
});
链接地址: http://www.djcxy.com/p/20427.html
上一篇: WebAPI to Return XML