通过WIFI从iPhone连接到本地Web服务(在MAMP下运行)。

问题描述:

我用MAMP设置了一个本地REST web服务。通过WIFI从iPhone连接到本地Web服务(在MAMP下运行)。

我已经设置了一个虚拟主机,其URL为“http://aem.davidcasillas”,指向我的公用文件夹。

MAMP正在侦听端口80

如果我通过Safari浏览器访问“http://aem.davidcasillas/webservice/rest/getEventosToday”我得到正确的JSON数据。

现在我试图从我的iPhone应用程序访问此Web服务。我从XCode运行它到设备中。

设备连接到通过WIFI我的本地网络,以及连接是否正常工作(我可以加载在Safari网页)

我使用RestKit下载数据,我试图与到达它与我在Mac中使用的网址相同:“http://aem.davidcasillas.es/webservice/rest/getEventosToday”。

在设备出现错误:

NSURLErrorDomain -1003 Found no server for the specified host name. 

我应该怎么写我的网址,所以我可以达到从iPhone web服务?

注:我已阅读此帖:test local websites with mamp on iphone?但这些问题都不适用于我的情况。我禁用了防火墙,并且我的config.ini文件显示以下侦听行:

Listen 80 

我找到了解决方法。

我SystemPreferences-使用WIFI IP地址>网络在我的Mac,然后整个路径的资源,所以不是:

"http://aem.davidcasillas.es/webservice/rest/getEventosToday" 

我写:

"http://192.168.1.6/aem.davidcasillas.es/public/webservice/rest/getEventosToday" 

192.168.1.6部分将我带到本地安装根文件夹/Applications/MAMP/htdocs/

在路径的其余部分,我必须将整个路径放到资源中。请注意,我必须在路径中包含公用文件夹。希望我可以使用我的虚拟主机设置,但还没有找到办法。

当我运行hostname,它打印出

> hostname 
ddopson.local 

您可以在System Preferences编辑这个==>Sharing ==>Computer Name(在顶部文本框)。请注意,在“计算机名称”文本框中填写了“ddopson”。

如果您使用的是WiFi,则应该能够从iPhone连接到该主机名(ddopson.local)。这是可行的,因为iOS和Mac都支持Multicast DNS,其中多播UDP数据包发送到L2网络以查找本地主机名。当你的Mac听到这个多播包时,它会用它的IP地址回复你的iPhone,然后离开你。