WebApi强制操作返回xml
我有这个动作:
public IHttpActionResult SearchFor(int aboItemType, DTO.FilterColumns filter) { //Do stuff... return Ok(ds); }
我的客户做了:
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/xml")); var response = client.PostAsJsonAsync(myurl).Result; if (response.IsSuccessStatusCode) { var results = HttpUtility.HtmlDecode(response.Content.ReadAsStringAsync().Result); }
上述场景完美无缺。 但是,如果我对Accept行进行注释,则该操作将以json格式返回数据集。
我想强制这一个特定的操作总是在xml中发送结果。 这可能吗? 也许有一个属性?
我使用了Сonfiguration.Formatters.XmlFormatter
public IHttpActionResult Get() { ... return Content(HttpStatusCode.OK, Model, Configuration.Formatters.XmlFormatter); }
你也可以这样做(如果你必须传递一些http标头值):
public IHttpActionResult Get() { var result = Request.CreateResponse(HttpStatusCode.OK, model, Configuration.Formatters.XmlFormatter); result.Headers.Add("Access-Control-Allow-Origin", "*"); return ResponseMessage(result); }