gpt4 book ai didi

c# - Xamarin HttpClient.GetStringAsync 不适用于 Xamarin.Droid

转载 作者:太空宇宙 更新时间:2023-11-03 12:35:54 25 4
gpt4 key购买 nike

我真的是 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 Manifest 上添加了互联网权限。我该怎么办?

最佳答案

您只能在本地计算机上访问 localhost。您需要将 localhost 更改为托管您的 api 的计算机的 IP 地址。

因此

的 api 端点
http://localhost:3000/employee

应该是这样的

http://192.168.0.5:3000/employee

关于c# - Xamarin HttpClient.GetStringAsync 不适用于 Xamarin.Droid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41040103/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com