注意:
我对Laravel、Vagrant-Homestead设置和Android的网络库Retrofit都比较新,但我擅长于Android和PHP Web开发。我已经设置好了Laravel,并开发了一个简单的测试Web API,只是为了在Android应用程序中测试Retrofit库。请不要将此标记为以下Q&A线程的重复问题。即使它提出了类似的问题,这些问题也是不同的。
我的问题:
我的Vagrant-Homestead托管的Web API可以通过安装在主机OS X Mac中的Web浏览器进行访问。而且我的Homestead有两个Laravel站点ll5.app和tapi.app(即API)。
_____________Mac OS X on MB Pro___________________
| _______________ ______________ |
| | Vagrant | | | |
| |http://api.app | <------> | Web Browser | | IP: 192.168.1.7
| |_______________| |______________| |
|_________________________________________________|
But, I still couldn't fix this up for the following:
_____________Mac OS X on MB Pro_______________________
| __________________ ________________ |
| | Vagrant | | | |
| |http://api.app | <---X--> | Android App | |
| | IP:192.168.10.10 | |IP:192.168.56.1 | |
| |__________________| |________________| |
|______________________________________________________|
我的 Host 文件如下:
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
192.168.10.10 ll5.app
192.168.10.10 tapi.app
以下是我
Homestead.yaml
的一部分内容:folders:
- map: "/Users/randika/Private_Projects/webapps/"
to: "/home/vagrant/webapps"
sites:
- map: tapi.app
to: "/home/vagrant/webapps/test_api/public"
- map: ll5.app
to: "/home/vagrant/webapps/ll5/public"
我尝试使用Retrofit库进行Web服务调用并尝试了以下内容。
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("<address>")
.addConverterFactory(GsonConverterFactory.create())
.build();
For the <address> I tried giving following values:
http://tapi.app
192.168.10.10:8000
当我尝试使用Genymotion Android的Web浏览器并使用地址http://192.168.10.10:8000访问时,它加载的是ll5.app主页而不是API。如何解决这个问题?任何帮助都将不胜感激。至少告诉我这不能做到吗?P.S.:已经是凌晨1点多了,我已经在上周末为此苦苦挣扎!
config.vm.network
的值。 - Alex BlexVagrantfile
里吗?如果是的话,我已经检查过了,但没有设置这样的值! - Randika Vishman