【问题标题】:How to use asp.net web API for accepting a HTTP POST containing XML?如何使用 asp.net Web API 接受包含 XML 的 HTTP POST?
【发布时间】:2015-09-02 16:43:26
【问题描述】:

我正在尝试使用 Web API 并接受包含 XML 的 HTTP POST。

我的印象是它可以自动反序列化为一个对象,但我错过了一些东西。

public class Item
{
    public int Value { get; set; }
}

这个可行,我从 SoapUI 接收 XML 并可以对其采取行动

[HttpPost]
public HttpResponseMessage Post(int id, HttpRequestMessage request)
{
    var doc = new XmlDocument();
    doc.Load(request.Content.ReadAsStreamAsync().Result);
    HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, new Item() { Value = id });
    return response;
}

不过我想要这个:

[HttpPost]
public HttpResponseMessage Post(int id, [FromBody]List<Item> items)
{
    return Request.CreateResponse(HttpStatusCode.OK);
}

尝试发布此内容:

<Items><Item><Value>1</Value></Item></Items>

我错过了什么?

【问题讨论】:

    标签: asp.net asp.net-web-api


    【解决方案1】:

    为什么发帖后总能找到答案。

    我忘了补充:

    var xml = GlobalConfiguration.Configuration.Formatters.XmlFormatter;
    xml.UseXmlSerializer = true;
    

    AspNet WebApi POST parameter is null when sending XML中所述

    我发送的 XML 现在看起来像这样:

    <ArrayOfItem><Item><Value>1</Value></Item><Item><Value>2</Value></Item></ArrayOfItem>
    

    不记得我在哪里读到它必须指定为ArrayOfXxx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-04
      • 2020-11-21
      • 2023-03-29
      • 2014-12-08
      • 2018-04-13
      • 1970-01-01
      • 1970-01-01
      • 2016-12-23
      相关资源
      最近更新 更多