2014-04-24 45 views
0

所以,我有以下問題:的ASP.NET Web API多發帖子單個控制器或行動

我們有一個由第三方派遣發布消息到我們的服務器的場景中,我們在沒有控制,以及他們希望將所有內容都發送到一個URL中,因此我們無法對查詢參數進行任何操作,因此我的問題是,是否可以使用單個操作來處​​理不同的發佈消息。實質上,發佈消息的內容將定義所述請求需要發生的事情。

帖子消息1:

<xml> 
    <content1> content </content1> 
    <content2> content </content2> 
</xml> 

帖子消息2:

<xml> 
    <content1> content </content1> 
    <content3> content </content3> 
</xml> 

正如你可以看到一些消息都會有類似的性質。

謝謝

+0

使用參數綁定技術,在一次郵政調用中發送兩個郵件是不可能的?這裏描述的東西? http://stackoverflow.com/questions/19302078/passing-complex-type-containing-array-of-complex-types-to-web-api/20790283#20790283 – Steven

回答

2

您可以使用下面的簽名就可以接受任意XML內容,

public HttpResponseMessage Post([FromBody]XElement xmlbody) { 
    // Process the xmlbody 
    return new HttpResponseMessage(HttpStatusCode.Created); 
} 

我對這種原始媒體類型的處理here的更多細節。

0

這是可能的。 指定您的操作以具有字符串輸入參數。通過這種方式,您可以將整條消息作爲字符串獲取,而不必擔心其屬性... 但是,您需要實現控制器中的邏輯以區分消息。

[HttpPost] 
public ActionResult MyActionForAllMessages(string message) 
{ 
    //Your logic 
} 
+1

你不能使用字符串作爲參數類型來做那。看到這裏http://bizcoder.com/posting-raw-json-to-web-api爲什麼。 –

相關問題