请求的资源不支持vb.net中的http方法'GET'web api
问题描述:
我正在使用vb.net中的Web API 2,并且遇到GET方法问题。所有的 首先我能够能够把HttpGet
或AcceptVerbs
的类或者操作方法请求的资源不支持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¶m2=2
我得到错误:
{”消息“:”请求uested资源不支持HTTP方法 “GET”。“}
答
的属性添加到行动,使您配置的惯例基于路由知道将这些行动,GET
请求相关联。通常情况下,约定会检查动作的名称,如GetConcatValues
以按惯例确定它是否为GET
请求。由于示例操作没有采用该惯例,所以下一个选项将属性附加到动作定义。
' GET api/home/concatvalues?param1=1¶m2=2
<System.Web.Http.HttpGet()>
Public Function ConcatValues(ByVal param1 As String,ByVal param2 As String) As String
Return "value"
End Function