请求的资源不支持 Visual Studio 2010 中的 HTTP 方法“GET”

Posted

技术标签:

【中文标题】请求的资源不支持 Visual Studio 2010 中的 HTTP 方法“GET”【英文标题】:The requested resource does not support HTTP method 'GET' in visual studio 2010 【发布时间】:2018-10-02 13:03:08 【问题描述】:

我有一个 Web API(.NET Framework 4.0、MVC Web 应用程序、visual studio 2010 sp1)

还有我的WebApiConfig 代码:

public static void Register(HttpConfiguration config)

    //config.MapHttpAttributeRoutes();

    config.Routes.MapHttpRoute(
        name: "DefaultApi",
        routeTemplate: "api/controller/action/id",
        defaults: new  id = RouteParameter.Optional 
    );

例如,这是我的控制器的方法代码之一:

[AcceptVerbs("Post")]
[ActionName("GetAccountTypeById")]
public static clsAccountType GetAccountTypeById(int AccountTypeId)

    SqlParameter[] param =  new SqlParameter("@Id", AccountTypeId) ;
    DataTable dt = null;
    dt = Execute.ExecuteSelect("SP_GetAccountTypeById", param);
    if (dt.Rows.Count > 0)
    clsAccountType item = new clsAccountType(Convert.ToInt32(dt.Rows[0]["Id"]), dt.Rows[0]["Name"].ToString());
        return item;
    
    else
        return null;

问题是当我调用这个 URL 时:

http://localhost:1387/api/AccountType/GetAccountTypeById 

从浏览器显示此错误:

请求的资源不支持http方法'GET'

【问题讨论】:

因为你有[AcceptVerbs("Post")] 你有什么建议 一个静态动作? The requested resource does not support HTTP method 'GET'的可能重复 非常感谢我没有注意到这一点(静态动作) 【参考方案1】:

浏览器无法发出 POST 请求,因此当您在浏览器中单击链接时,您实际上发出了 GET 请求,这就是您看到错误的原因。

您需要使用 Postman 之类的工具,它允许您发出所需的任何类型的请求,以测试您的端点。

【讨论】:

以上是关于请求的资源不支持 Visual Studio 2010 中的 HTTP 方法“GET”的主要内容,如果未能解决你的问题,请参考以下文章

如何禁用自动隐藏解决方案资源管理器(Visual Studio 2017)

未安装C#的 visual studio 语言支持。代码编辑intellisense 将不可用。

Windows Visual Studio 2003 支持

如何在Visual Studio和CodeBlocks中反编译C++代码

Visual Studio + 探索 sftp

在 Visual Studio 2012 中,如何将资源文件 (.rc) 与 c ++ dll 链接