我在 Xamarin 开发方面确实是个新手,我刚刚尝试使用 Xamarin.Forms 使用共享代码开发 Android 和 iOS 应用程序,而我在这里尝试做的是使用 Plugin.RestClient NuGet 包从 API 获取数据。
这是我的 MainViewModel。
public MainViewModel(){
InitializeDataAsync();
}
public async Task InitializeDataAsync(){
var employeeServices = new EmployeeServices();
EmployeesList = await employeeServices.getEmployeesAsync();
}
这是我的服务
public async Task<List<Employee>> getEmployeesAsync(){
RestClient<Employee> restClient = new RestClient<Employee>();
var employeeList = await restClient.GetAsync("http://localhost:3000/employee");
return employeeList;
}
这是我的 RestClient
public async Task<List<T>> GetAsync(string WebServiceUrl){
var httpClient = new HttpClient();
var json = await httpClient.GetStringAsync(WebServiceUrl);
Debug.WriteLine(WebServiceUrl);
Debug.WriteLine(json);
var taskModels = JsonConvert.DeserializeObject<List<T>>(json);
return taskModels;
}
该代码在我的 iPhone 模拟器上运行良好。我可以看到 url 和 json 响应的调试。但在我的 Android 模拟器上,列表中没有任何内容。我什至找不到 url 和 json 响应的调试,我已经检查了我的应用程序输出和设备日志(顺便说一句,我使用了 Xamarin Studio for Mac)。
我还已经在我的 Android 清单上添加了互联网权限。
我应该怎么办?
您只能访问localhost
在您的本地计算机上。你需要改变localhost
托管 api 的计算机的 IP 地址。
所以 api 端点
http://localhost:3000/employee
应该是这样的
http://192.168.0.5:3000/employee
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)