Azure 移动服务客户端 InvokeApiAsync 未命中 WebAPI

Azure Mobile Service Client InvokeApiAsync not hitting WebAPI

我似乎无法从我的 xamarin 表单移动应用访问我的网站 api。我可以通过 PostMan 点击 api,它工作正常。

输入文本时运行的命令

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 项目设置了互联网权限

问题出在这一行

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

显然,它在使用 InvokeApiAsync 方法时已经添加了 'api' 前缀。删除这个解决了这个问题。