发出简单的 Web API post 请求

ooo*_*ooo 2 c# asp.net-web-api

我真的很难在 url 中发出基本的 post 请求来支持 Web api 教程。

我想在浏览器中执行类似的操作:http://localhost:59445/api/group/post/?newvalue=test并获取要注册的帖子。但是我似乎无法正确形成请求。这样做的正确方法是什么?

我收到的错误是:

{“Message”:“请求无效。”,“MessageDetail”:“参数字典包含方法“System.String Get(Int32)”的不可空类型“System.Int32”的参数“id”的空条目' 在 'twin_groupapi.Controllers.GroupController' 中。可选参数必须是引用类型、可为 null 的类型,或者声明为可选参数。"}

我的模型:

    public class Group  
    {
     public Int32 GroupID { get; set; }
     public Int32 SchoolID { get; set; }
     public string GroupName { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

路由:

public static void Register(HttpConfiguration config)
    {
        // Web API configuration and services

        GlobalConfiguration.Configuration.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;
        // Web API routes
        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{action}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
    }
Run Code Online (Sandbox Code Playgroud)

控制器:

    //[Route("api/Group/Post")]
    [HttpPost]
    public void Post([FromUri] string NewValue)
    {

        string newstring = NewValue;

    }
Run Code Online (Sandbox Code Playgroud)

Str*_*ior 6

在浏览器中点击 URL 只会执行 GET 请求。

您可以:

  • 创建一个简单的<form>方法,将其方法设置为POST并形成输入以输入要发送的值(例如NewValue),或者
  • 编写一些 JavaScript 以使用您最喜欢的框架创建 AJAX POST 请求,或者
  • 使用Postman等工具设置 POST 请求、调用它并检查结果。