请求的资源不支持vb.net中的http方法'GET'web api

问题描述:

我正在使用vb.net中的Web API 2,并且遇到GET方法问题。所有的 首先我能够能够把HttpGetAcceptVerbs的类或者操作方法请求的资源不支持vb.net中的http方法'GET'web api

我没有Routeconfig因为我创建的Web API 2等均采用模板项目。

这里我WebApiConfig文件

Public Module WebApiConfig 
    Public Sub Register(ByVal config As HttpConfiguration) 
     ' Web API configuration and services 

     ' Web API routes 
     config.MapHttpAttributeRoutes() 

     config.Routes.MapHttpRoute(
      name:="DefaultApi", 
      routeTemplate:="api/{controller}/{action}/{id}", 
      defaults:=New With {.id = RouteParameter.Optional} 
     ) 

     config.Formatters.JsonFormatter.SupportedMediaTypes.Add(New MediaTypeHeaderValue("text/html")) 
    End Sub 
End Module 

和API控制器类

Public Class HomeController 
    Inherits ApiController 

    ' GET api/values 
    'Public Function GetValues() As IEnumerable(Of String) 
    ' Return New String() { "value1", "value2" } 
    'End Function 


    ' GET api/values/5 

    Public Function ConcatValues(ByVal param1 As String,ByVal param2 As String) As String 
     Return "value" 
    End Function 

End Class 

但是当我运行网址:http://localhost:43021/api/home/ConcatValues?param1=1&param2=2

我得到错误:

{”消息“:”请求uested资源不支持HTTP方法 “GET”。“}

的​​属性添加到行动,使您配置的惯例基于路由知道将这些行动,GET请求相关联。通常情况下,约定会检查动作的名称,如GetConcatValues以按惯例确定它是否为GET请求。由于示例操作没有采用该惯例,所以下一个选项将​​属性附加到动作定义。

' GET api/home/concatvalues?param1=1&param2=2 
<System.Web.Http.HttpGet()> 
Public Function ConcatValues(ByVal param1 As String,ByVal param2 As String) As String 
    Return "value" 
End Function