zoukankan      html  css  js  c++  java
  • Message": "请求的资源不支持 http 方法“GET”

    今天用postman测试后端api,总是报错,下面是问题解决方案。

    一、测试方法

    public ApiResult Get(int id)
    {
    ApiResult result = new ApiResult();

    result.data = "我是Get方法返回的数据";
    result.success = true;
    result.msg = "测试成功";

    return result;
    }

    public class ApiResult
    {
    public bool success { get; set; }

    public string msg { get; set; }

    public object data { get; set; }
    }

    二、问题和解决

    0请求:http://localhost/projectmanagement/api/user/5

    在网上查了下请求要这么写:http://localhost/projectmanagement/api/user/?id=5

    1 提示没有权限

    去路由里面一看,前辈重新了校验规则,不知道。为了测试方法我注释的校验规则。

    public static void Register(HttpConfiguration config)
    {
    // Web API 配置和服务

    // Web API 路由
    config.MapHttpAttributeRoutes();

    config.Routes.MapHttpRoute(
    name: "DefaultApi",
    routeTemplate: "api/{controller}/{id}",
    defaults: new { id = RouteParameter.Optional }
    );
    // config.Filters.Add(new AppAuthorizeAttribute());

    }

    2   "Message": "请求的资源不支持 http 方法“GET”。"

    请求 

    解决:在方法代码上一行 添加 [HttpGet]

    3 又报 "Message": "请求的资源不支持 http 方法“GET”。"

    解决:同时在多个方法代码 添加 [HttpGet],必须取别名 ,例如 [Route("Get")]  

    请求也要加别名:http://localhost/projectmanagement/api/user/get/?id=5

    http://localhost/projectmanagement/api/user/First/?id=5

    然后还是报错。

    解决:使用别名时,必须在控制器类上面加前缀    [RoutePrefix("api/User")]

    三、完整测试代码

    using ProjectManagement.BLL;
    using ProjectManagement.Models;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net;
    using System.Net.Http;
    using System.Web.Http;
    
    namespace ProjectManagement.Controllers
    {
        [RoutePrefix("api/User")]
        public class UserController : ApiController
        {
         
            [HttpGet]
            [Route("First")]  
            public ApiResult First(int id)
            {
                ApiResult result = new ApiResult();
    
                result.data = "我是First方法返回的数据";
                result.success = true;
                result.msg = "测试成功";
    
                return result;
            }
    
            [HttpGet]
            [Route("Get")]
            public ApiResult Get(int id)
            {
                ApiResult result = new ApiResult();
    
                result.data = "我是Get方法返回的数据";
                result.success = true;
                result.msg = "测试成功";
    
                return result;
            }
    
        }
    }
    

      

  • 相关阅读:
    独立与条件独立
    独立事件、笛卡尔积与矩阵向量乘法
    独立事件、笛卡尔积与矩阵向量乘法
    OpenCV图像增强算法实现(直方图均衡化、拉普拉斯、Log、Gamma)
    等高线的认识
    等高线的认识
    概率相关的证明
    概率相关的证明
    OpenGl中使用着色器的基本步骤及GLSL渲染简单示例
    中英文对照 —— 歌词
  • 原文地址:https://www.cnblogs.com/hao-1234-1234/p/9765918.html
Copyright © 2011-2022 走看看