我正在学习如何在Xamarin表单上使用Web服务。 我一直在遵循一个教程(如果可以共享,请务必提及),在该教程中一切正常,直到我发现自己使用 Get 方法。 本教程使用MVVM模式,它是检查员工名单的应用程序。我将在代码中留下类名。
员工服务:
public class EmployeesServices
{
public async Task <List<Employee>> GetEmployeesAsync()
{
RestClient<Employee> restClient = new RestClient<Employee>();
var employeesList = await restClient.GetAsync();
return employeesList;
}
}
调用上一个类的MainViewModel。
public MainViewModel()
{
InitializeDataAsync();
}
private async Task InitializeDataAsync()
{
var employeesServices = new EmployeesServices();
EmployeesList = await employeesServices.GetEmployeesAsync();
}
问题所在的RestClient。
private const string WebServiceUrl = "http://localhost:xxxx/api/Employees/";//the localhost, Just for security I've hidden the numbers
public async Task<List<T>> GetAsync()
{
var httpClient = new HttpClient();
var json = await httpClient.GetStringAsync(WebServiceUrl);
var taskModels = JsonConvert.DeserializeObject<List<T>>(json);
return taskModels;
}
当我调试以下行
var json = await httpClient.GetStringAsync(WebServiceUrl);
不检索字符串“ WebServiceUrl”(这是我托管服务的本地链接)。因此,它不会检索数据。 这种行为很奇怪。
在本教程中,它可以完美运行,但是本教程使用VS2015。我正在使用VS2017。
HttpClient是否已更改了一些重要内容?这是错误吗?有解决方法吗?
我已经对该问题进行了非常深入的研究,但没有找到解决方案。只是暗示HttpClient改变了一些行为。