如何使用Advanced Rest Client进行POST请求

6
我正在学习ASP.Net MVC 5的基础知识。我想使用“高级rest客户端”向我的一个控制器操作发出POST请求,该操作位于“SecurityController”中。但是我无法做到这一点。请指导我。
以下是我的尝试:
[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; }
}

现在我需要在我的高级REST客户端中进行哪些更改?

步骤1:将请求下拉菜单设置为POST

步骤2:在原始有效载荷部分,我明确添加了以下内容:

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

我不确定这是否是正确的方法。
步骤3. 我需要添加一些内容类型或其他配置吗?目前,我收到了“资源未找到”的错误。
这是截图: enter image description here 编辑:另一次尝试


你为什么在URL中添加了/security?控制器是SecurityController吗? - Maria Ines Parnisari
@Gusman:我又尝试了一次。将其添加为JSON格式,并将下拉菜单更改为“application/json”。 - Unbreakable
@MariaInesParnisari: 可以看到我的编辑。 - Unbreakable
@Gusman:现在它可以工作了。非常感谢你。 - Unbreakable
@Gusman:如果您能将您的评论作为答案发布,这将对一些初学者有所帮助。我会接受这个答案。 - Unbreakable
显示剩余2条评论
2个回答

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

4

404表示您有一个路由问题,与有效载荷无关,因为有效载荷在任何情况下都不会对路由做出贡献。假设此方法是SecurityController.Hello,并且您正在使用默认路由,则请求/security/hello应该到达正确的位置。因此,包括您的RouteConfig.cs可能会对您的问题有所帮助。

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

一旦您解决了路由问题,现在以JSON形式发送请求正常工作。以后请注意,“原始”需要是application/x-www-form-urlencoded,即 one=1&two=2&three=3


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接