2017-07-24 101 views
0

我有以下Web API方法:邮差和POST请求

[HttpGet] 
    [Route("GetUserStatus")] 
    public HttpResponseMessage GetUserStatus() 
    { 

    } 

    [HttpPost] 
    [Route("Send")] 
    public HttpResponseMessage Send(string usernameTo, string message) 
    { 

    } 

当我打电话的GET请求 - 它工作正常。但是,当我尝试发送POST请求时 - 我收到一个错误:

{ 
    "Message": "No HTTP resource was found that matches the request URI 'http://localhost:11015/api/Chat/Send'.", 
    "MessageDetail": "No action was found on the controller 'ChatApi' that matches the request." 
} 

并且该方法的失败调用计数器递增。为什么这样? 我尝试以下方法:

enter image description here

回答

2

我可能是错的,但我认为问题是,你是打包参数为邮差单个对象。你可以尝试设置usernameTomessage作为PARAMS在邮差UI Send方法的输入更改为包含usernameTomessage作为属性/字段(不要忘记匹配外壳)的单个对象。我更喜欢后者。类似这样的:

[HttpPost] 
[Route("Send")] 
public HttpResponseMessage Send(MessageDetails details) 
{ 

} 

public class MessageDetails 
{ 
    public string usernameTo { get; set; } 
    public string message { get; set; } 
} 
+0

您的anser纠正了这个问题,但它不是邮差问题,Web Api只能从身体中取一个参数来反序列化。 –

+0

你是对的,我不是故意暗示它是特意与邮差有关的。我把它叫出来,因为这是原始问题中使用的方法。 – ipshing