首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HttpClient.GetStringAsync不工作于Xamarin.Droid

HttpClient.GetStringAsync不工作于Xamarin.Droid
EN

Stack Overflow用户
提问于 2016-12-08 12:57:30
回答 2查看 2.1K关注 0票数 2

我在Xamarin开发方面真的很新,我刚刚尝试过Xamarin.Forms用共享代码开发Android&iOS应用程序,我在这里试图做的是用Plugin.RestClient NuGet软件包从API中获取数据。

这是我的MainViewModel。

代码语言:javascript
复制
public MainViewModel(){
    InitializeDataAsync();
}

public async Task InitializeDataAsync(){
    var employeeServices = new EmployeeServices();
    EmployeesList = await employeeServices.getEmployeesAsync();
}

这是我的服务

代码语言:javascript
复制
public async Task<List<Employee>> getEmployeesAsync(){
    RestClient<Employee> restClient = new RestClient<Employee>();
    var employeeList = await restClient.GetAsync("http://localhost:3000/employee");
    return employeeList;
}

这是我的RestClient

代码语言:javascript
复制
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响应的Debug,我已经检查了我的应用程序输出和设备日志(我使用了Xamarin Studio for Mac )。

我也已经在我的Android上添加了互联网许可。我该怎么办?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-08 13:18:08

您只能访问本地计算机上的localhost。您需要将localhost更改为承载api的机器的IP地址。

所以api端点用于

代码语言:javascript
复制
http://localhost:3000/employee

应该是这样的

代码语言:javascript
复制
http://192.168.0.5:3000/employee
票数 1
EN

Stack Overflow用户

发布于 2016-12-08 19:59:29

如果您收到超时错误,那么可能是因为Android操作系统的"localhost“意味着电话本身,这可能不是您没有运行web服务器的地方。在使用Android仿真器进行测试时,可以使用一些特殊的IP地址来访问主机操作系统:

  1. Google模拟器允许您从10.0.2.2到达主机操作系统。
  2. Microsoft Android仿真器允许您从169.254.80.80到达主机操作系统。

您可以尝试根据所使用的模拟器类型更改您的URL。或者,您可以插入您的工作站IP地址,但这是不可取的,因为它可以改变。

如果这不允许您到达服务器,那么您可以考虑查看任何防火墙,以查看您的通信是否被阻塞。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41040103

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档