模拟器可以从本地主机访问Web服务,但我的真实设备不能使用LAN IP地址(192.168.xx.yyy)而不是10.0.2.2.当然,我的Android手机被adb认可,它通过USB端口连接我的笔记本电脑.
我已经在stackoverflow上阅读了一些类似的问题,但仍然不知道如何从真正的Android手机访问webservice.这个问题的答案如何从我的Android设备访问我的localhost?我很有用,但我真的不明白这个答案.
有人帮我吗?谢谢!
Web服务器可能正在侦听环回接口,但不在网络接口上侦听.这意味着,击中127.0.0.1
并localhost
会工作,但192.168.xxx.xxx
不会(无论是从本地主机,LAN或WAN).
要确定服务器正在侦听哪个接口,请在此处查看告诉您有关侦听端口的命令(我使用过lsof -Pan -i tcp -i udp
).然后在列表中查找您的服务器进程.对于该lsof
命令,如果对于端口8888,您会看到类似的内容,TCP *:8888 (LISTEN)
那么您的服务器正在侦听所有接口.但如果你看到像那样的东西,TCP [::127.0.0.1]:8888 (LISTEN)
你已经发现了你的问题!
解决问题的下一步是设置服务器的运行配置以监听所有接口.我不知道您使用的服务器,但如果您可以指定IP地址,那么您可能想尝试一下0.0.0.0
.通常,您可以在允许指定侦听端口的位置附近执行此操作.因此,如果您有如下配置:
--port 8888
然后你可以尝试:
--port 8888 --address 0.0.0.0