【问题标题】:How to make a POST request using Advanced Rest Client如何使用 Advanced Rest Client 发出 POST 请求
【发布时间】:2017-05-04 23:53:38
【问题描述】:

我正在学习 ASP.Net MVC 5 的基础知识。我想使用 Advanced rest ClientSecurityController 中存在的我的控制器操作之一发出 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 的错误。

截图如下:

编辑:另一次尝试

【问题讨论】:

  • 负载不是 JSON,在 JSON 上应该是:{ "one":2, "two":3, "three":4 }
  • 为什么在网址中添加/security?控制器是SecurityController吗?
  • 我在安全控制器中有我的行动
  • @Gusman :我又做了一次尝试。像 JSON 一样添加它并将下拉列表更改为 application/json
  • @MariaInesParnisari :可以看到我的编辑。

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


【解决方案1】:

您的负载格式错误,JSON 中的对象定义应为{ "one":2, "two":3, "three":4 }

【讨论】:

    【解决方案2】:

    404 表示您有路由问题。它与有效负载无关,因为它不会以任何方式影响路由。假设这个方法是SecurityController.Hello,并且您正在使用默认路由,那么对/security/hello 的请求应该会发送到正确的位置。因此,将您的 RouteConfig.cs 也包含在您的问题中可能会有所帮助。

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

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

    【讨论】:

      猜你喜欢
      • 2020-01-23
      • 1970-01-01
      • 2016-02-28
      • 2013-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多