如何创建正确的HTTPPost Web服务方法

时间:2016-07-22 21:00:31

标签: web-services post asp.net-web-api get

我正在尝试[HTTpPost]网络服务,但遗憾的是没有成功。

我的示例类是这样的:

[RoutePrefix("CarInformation")]
public class CarInformationController : BaseApiController
{
    [HttpPost]    
    [Route("BodyStatusHistory2/{orders}")]
    public HttpResponseMessage GetHistory(string orders)
    {

        //do something with orders

    }   
}

这是对的吗?如果是这样,我怎么称呼它?我从浏览器尝试了几件事,但我无法调用它。

我可以合并

[HTTpGET] and [HTTpPOST] ?

那么一个方法可以有GET和POST吗?如果我将注释从POST替换为GET,我可以在URL中调用它并且它正在工作。不幸的是没有POST

2 个答案:

答案 0 :(得分:0)

是的,我知道,但我不想要GET它必须是一个POST。这是我的一个POST电话:

POST:

http://localhost:59595/CarInformation/BodyStatusHistory2/

Host: localhost:59595
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
DNT: 1
Access-Control-Request-Method: POST
Access-Control-Request-Headers: content-type
Origin: http://localhost:51372
Connection: keep-alive

体:

{"orders":"6320171074502,6320171074504"}

答案 1 :(得分:0)

我修好了它:

使用正确的标题:

Content-Type: application/x-www-form-urlencoded

public HttpResponseMessage GetBodyStatusHistory2([FromBody] string orders)

有效