2017-03-18 161 views
1

我正在使用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」。「}

回答

1

的​​屬性添加到行動,使您配置的慣例基於路由知道將這些行動,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 
相關問題