2015-09-02 31 views
0

我正在嘗試使用Web API並接受包含XML的HTTP POST。如何使用asp.net 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> 

我錯過了什麼?

回答

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

相關問題