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' 前缀。删除这个解决了这个问题。
我似乎无法从我的 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' 前缀。删除这个解决了这个问题。