如何使用Advanced Rest Client发出POST请求

时间:2017-05-04 15:37:42

标签: c# asp.net asp.net-mvc rest asp.net-mvc-5

我正在学习ASP.Net MVC 5的基础知识。我想使用SecurityControllerAdvanced rest Client中出现的控制器操作发出POST请求。但我无法这样做。请指导我。

以下是我的尝试:

[HttpPost]
public ActionResult Hello(SampleMV viewModel)
{
    return Content("Hello");
}

public class SampleMV
{
    public int one { get; set; }
    public int two { get; set; }
    public int? three { get; set; }
}

现在我需要在Advanced Rest Client中进行哪些更改?

步骤1.将请求下拉列表设置为POST

步骤2.在我明确添加的原始有效负载部分中:

one = 2, two = 3, three = 4  seperated by comma.

我不确定这是否正确。

步骤3.我是否需要放置一些内容类型或任何其他配置。目前,我收到的错误为Resource not found

以下是截图:

enter image description here 编辑:另一种尝试

2 个答案:

答案 0 :(得分:4)

您的有效负载格式不正确,JSON中的对象定义应为{ "one":2, "two":3, "three":4 }

答案 1 :(得分:4)

404表示您遇到路由问题。它与有效载荷无关,因为它不会以任何方式对路径做出贡献。假设此方法为SecurityController.Hello,并且您正在使用默认路由,则对/security/hello的请求应该转到正确的位置。因此,在您的问题中包含RouteConfig.cs可能会有所帮助。

此外,如果您正在使用ApiController,我认为操作名称必须遵循以请求方法开头的惯例。换句话说,您的Hello操作需要命名为PostHello

一旦您对路由进行了排序,现在,您将请求正文作为JSON的方式应该可以正常工作。为了将来参考,“raw”需要是application / x-www-form-urlencoded,即one=1&two=2&three=3