Как вызвать Visual Basic API с параметрами - PullRequest
0 голосов
/ 24 августа 2018

У меня есть следующий контроллер:

Public Class GuestController
Inherits ApiController
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

И у меня есть следующая модель:

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

Так же, как тест, я хочу иметь возможность вызывать этот API, передавая егозначение JOE и API возвращают мне.

Сначала я попробовал

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

Но это дало мне эту ошибку:

Нет ресурса HTTPнайдено, что соответствует URI запроса 'http://localhost:12976/api/guest?a=JOE'. На контроллере' Гость 'не найдено никакого действия, соответствующего запросу.

Затем я обнаружил, что мне нужно назвать параметр url таким же, как параметр, который я определил в моей функции ApiController.Итак, для второй попытки я отправил:

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

Но это дало мне эту ошибку:

Запрашиваемый ресурс не поддерживает http метод «GET».

Так что теперь я в замешательстве, так как вообще не указываю метод http.

Идеи?Предложения?

Спасибо.

1 Ответ

0 голосов
/ 26 августа 2018

По умолчанию, если сделать запрос из браузера, если не указано иное, запрос будет GET-запросом

Но так как имя действия не соответствует соглашениям об именах по умолчанию (например, наличие Get prefix), платформа не может определить, какой 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...