Клиент мобильного сервиса Azure InvokeApiAsync не работает с WebAPI - PullRequest
0 голосов
/ 03 ноября 2018

Кажется, я не могу получить доступ к моему веб-интерфейсу из моего мобильного приложения xamarin форм. Я могу поразить API через PostMan, и он работает нормально.

Команда, запускаемая при вводе текста

return _searchCommand ?? (_searchCommand = new Command<string>(async (text) => await ExecutSearchCommand(text)));

Эта команда вызывает мой ExecuteSearchCommand метод, в котором мой клиент делает мой вызов API

async Task ExecuteSearchCommand(string search){
    var table = await App.Client.InvokeApiAsync("api/Item", System.Net.Http.HttpMethod.Get, new Dictionary<string, string> (){ { "filter", search } });
    ...
}

Мой ItemController выглядит следующим образом

[MobileAppController]
[Route("api/Item")]
public class ItemController : ApiController
{
    [HttpGet]
    public async Task<IEnumerable<Item>> Get(string filter)
    {
        return await itemRepository.SearchAsync(filter);
    }
}

Есть что-то, чего мне здесь не хватает? Я пытался подключиться к веб-API, работая локально и указывая моему клиенту на локальный хост, а также на мой веб-API.

* У меня есть интернет-разрешения для проекта Android

1 Ответ

0 голосов
/ 03 ноября 2018

Проблема была в этой строке

var table = await App.Client.InvokeApiAsync("api/Item", System.Net.Http.HttpMethod.Get, new Dictionary<string, string> (){ { "filter", search } });

По-видимому, он уже добавляет префикс 'api' при использовании метода InvokeApiAsync. Удаление это решило проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...