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

时间:2012-02-28 08:46:45

标签: ios localhost mamp restkit

我已经使用MAMP设置了本地REST Web服务。

我设置了一个虚拟主机,其网址为“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上访问网络服务?

注意:我已阅读此帖:test local websites with mamp on iphone?但这些问题均不适用于我的案例。我已禁用防火墙,我的config.ini文件显示以下监听行:

Listen 80

2 个答案:

答案 0 :(得分:1)

我找到了解决方法。

我在Mac中使用SystemPreferences-> NetWork中的WIFI IP地址,然后使用资源的整个路径,而不是:

"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/

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

答案 1 :(得分:1)

当我运行hostname时,会打印出

> hostname
ddopson.local

您可以在System Preferences ==>中进行修改Sharing ==> Computer Name(顶部的文本框)。请注意,在“计算机名称”文本框中,我填写了“ddopson”。

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