我已经使用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
答案 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,然后离开。