其实这个问题是在我的一个小Demo里出现的,因为刚刚接触后端的接口工作,所以就写了一个登录注册的接口,然后想用最近比较流行的Okhttp和Volley试一下接口是不是可以用,
问题来了:APP里面的登陆注册已经写好了,先用okhttp试一下,发现根本就不走回调方法,首先我怀疑是okhttp没有写好,索性换掉,改使用volley,再试一下,发现还是不走回调,这就尴尬了,接下来我就怀疑是我的接口写的不对,但是,我又在浏览器中试了试,发现是可以有结果返回的;接下来,我就把怀疑的重点放在了IP地址上面,因为接口那边写的IP是用的127.0.0.1,网上查了一下,说模拟器是不识别LocalHost和127.0.0.1这两个地址的,应该改成10.0.0.2或者10.0.2.2,接着我又去改,改成这两个IP还是不行,直接报的就是无法连接到这两个Ip,恼火!
半个月后...(时间有点久,是因为中间还有工作上面的事情要做)也就是昨天晚上,我又想起来这个小Demo,然后我打开模拟器,看模拟器里面的IP到底是多少,惊天的发现!!!模拟器里的IP地址竟然是10.0.3.15,这就尴尬了!!! 弄死人也不会访问到的啊!根本不在一个局域网,接着,我把APP访问接口的IP改成10.0.3.2,奇迹出现了!!可以返回数据了!!!!!
总结:
1,如果你使用的模拟器是AndroidStudio自带的,那么你如果想要访问本地的服务器,那你必须把IP地址改成: 10.0.2.2或者你的本机实际ip地址(cmd里ipconfig就可以看到)
2,如果你使用的模拟器是Genymotion的话,那你就需要把你的IP地址改成 10.0.3.2才可以!!!
3,要珍惜时间!中间浪费的时间太多了!希望对大家有所帮助!