Android| failed to connect to /10.0.2.2 (port 80) after 10000ms
程序员文章站
2022-05-16 18:16:05
...
关于使用android模拟器访问本地服务器失败
第一种:使用Google自带的模拟器 用http://127.0.1.1访问失败
描述:
明明在浏览器中使用http://127.0.1.1可以访问Apache本地服务器,但是将http://127.0.1.1放在url中,编译构建就显示连接访问失败。
原因:
Googl自带的Android模拟器在本地开辟了内存,所以使用http://127.0.1.1是默认访问Android模拟器,并不是访问我们电脑主机的服务器。因为Android模拟器并没有http://127.0.1.1这个接口,所以会显示连接失败: failed to connect to /127.0.1.1(port 80) after 10000ms;
解决方法:
Googl自带的Android模拟器使用http://10.0.2.2默认为电脑的本地接口,所以避开了http://127.0.1.1这个本身模拟器的接口。即在url(http://10.0.2.2)即可访问电脑的本地服务器。
第二种:使用Genymotion模拟器 用http://127.0.1.1或者http://10.0.2.2都访问失败
描述:
像我就是用Genymotion模拟器的,但是发现无论是用http://127.0.1.1或者http://10.0.2.2都连接访问失败。
原因:
Genymotion模拟器用http://127.0.1.1也是连接访问模拟器本身的接口,而且它并没有内置http://10.0.2.2来默认访问电脑主机的服务器,所以这两个链接都无效。
解决方法:
查下自己电脑的IP地址,然后直接将电脑的IP地址放在Url中,这样就可以直接访问电脑主机了。
-
说下查看自己电脑IP的方法吧:
一、在命令行窗口输入下图的命令:
二、然后会出现一大推的东西,找到红圈圈出来的IP地址:
- 三、将这个电脑的IP放入Url中即可;
Request request=new Request.Builder().url("http://172.28.1.210/get_data.xml").build();