【发布时间】:2017-02-02 19:11:51
【问题描述】:
我知道我可以通过 10.0.2.2 :portnumber 从 Windows Android Emulator 访问 localhost(我需要从 Xamarin 应用程序访问在 localhost 上运行的这些 Web API 服务我正在VS2015中开发)。
我可以通过 localhost 验证 Web API 的服务运行正常,但不能通过 Android 模拟器验证,此屏幕截图总结了问题:
https://s23.postimg.org/calomedq3/localhost.jpg
根据我的研究,这应该可行。我错过了什么?非常感谢。
【问题讨论】:
-
防火墙中的端口是否开放?
-
你能否在浏览器中使用 IP (10.0.2.2) 而不是 127.0.0.1 访问 API
-
我不确定你是否理解这个问题,或者我没有表达清楚。 10.0.2.2 是 Google 的 Android 团队实现的特殊别名,用于从 Android VM 中访问 localhost(即我的开发机器)。因此,我将无法使用 10.0.2.2 从在 localhost(如屏幕截图中)中运行的浏览器访问 API,只能使用“localhost”或 127.0.0.1。在 Aandroid VM 中运行浏览器则相反——“localhost”或 127.0.0.1 在那里毫无意义,因为实例在模拟器中运行并且可以访问虚拟路由器,而不是本地网络。
-
运行
adb shell ifconfig并检查子网,在我的例子中是10.0.3.xxxnot 10.0.2.xxx -
在您的屏幕截图中,您似乎正在连接到不同的网址。特别是最后一个字符是:systemtype=I 而您的 localhost 浏览器显示 systemtype=D
标签: android xamarin localhost emulation