【问题标题】:ASP.NET Web API multiple post messages single controller or actionASP.NET Web API 多个发布消息单个控制器或操作
【发布时间】:2014-06-09 14:35:12
【问题描述】:

所以我有以下问题:

我们有一个场景,第三方正在向我们的服务器发送帖子消息,我们无法控制,他们希望将所有内容发送到单个 url,所以我们无法对查询参数做任何事情,所以我的问题那么,是否可以通过单个操作处理不同的帖子消息。本质上,发布消息的内容将定义所述请求需要发生的事情。

发布消息 1:

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

发布消息 2:

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

如您所见,一些消息将具有相似的属性。

谢谢

【问题讨论】:

标签: c# asp.net xml asp.net-web-api


【解决方案1】:

您可以使用以下签名来接受任意 XML 内容,

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

我有更多关于这种原始媒体类型处理的详细信息here

【讨论】:

    【解决方案2】:

    这是可能的。 指定您的操作以具有字符串输入参数。这样,您可以将整个消息作为字符串获取,而不必担心其属性... 但是,您需要在控制器中实现逻辑来区分消息。

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多