如何使用参数调用Visual Basic API

时间:2018-08-24 20:10:40

标签: vb.net asp.net-web-api

我有以下控制器:

Public Class Savedata
    Public Property ID As Integer
    Public Property Name As String
End Class

我有以下模型:

{{1}}

作为测试,我希望能够调用此API,并为其传递一个JOE值,并使该API返回joe。

首先我尝试

  

http://localhost:12976/api/guest?a=JOE

但这给了我这个错误:

  

     找不到与请求URI'http://localhost:12976/api/guest?a=JOE'相匹配的HTTP资源。         在控制器“访客”上未找到与请求匹配的操作。      

然后,我发现需要将url参数命名为与在ApiController函数中定义的参数相同的名称。因此,我第二次尝试发送此邮件:

  

http://localhost:12976/api/guest?passedName=JOE

但这给了我这个错误:

  

     请求的资源不支持http方法“ GET”。      

所以现在我很困惑,因为我根本没有指定http方法。

想法?有建议吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

默认情况下,如果从浏览器发出请求,除非另有说明,否则该请求将是GET请求

但是由于操作的名称未遵循默认的命名约定(例如具有 Get 前缀),所以框架无法推断该操作接受哪个HTTP动词。

在操作上使用HttpGet属性,以使框架知道该操作接受HTTP GET请求

Public Class GuestController
Inherits ApiController

    <HttpGet()> _
    Public Function SaveValue(<FromUri> ByVal passedName As String) As Savedata
        'Get guest data from database
        Dim guestResult As New Savedata
        guestResult.Name = passedName.ToLower()
        Return guestResult
    End Function

End Class