2014-09-06 218 views
3

我试图得到休息的数据iOS应用,我使用此代码:iPhone模拟器访问本地主机服务器

var rest_url = "http://192.168.0.1:8000/rest/users/" 

    let url: NSURL = NSURL(string: rest_url) 
    let session = NSURLSession.sharedSession() 
    let task = session.dataTaskWithURL(url, completionHandler: {data, response, error -> Void in 
    if(error != nil) { 
     println(error.localizedDescription) 
    } 
    println(data) 
    var err: NSError? 

    var jsonResult = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: &err) as NSDictionary! 

,但我认为我无法访问我的服务器这样的,任何人都知道如何能我从ios模拟器访问我的服务器?

+0

本地主机是'127.0.0.1'。您的网络服务器可能仅在该IP上进行侦听。 – 2014-09-06 16:34:27

+0

'操作无法完成。 (NSURLErrorDomain error -1004。) <> JSON错误操作无法完成。 (可可错误3840.) 致命错误:意外地发现零,而解包可选值' – 2014-09-06 17:06:52

回答

2

确保您的Mac的IP为192.168.0.1。所以,你的网址可能是

var rest_url = "http://YOUR MAC IP:8000/rest/users/" 
+0

我运行与端口8000,192.168.0.13 python服务器,我尝试与该网址,并与127.0.0.1:8000,但没有任何工作: /'操作无法完成。 (NSURLErrorDomain error -1004。) <> JSON错误操作无法完成。 (可可错误3840.) 致命错误:意外地发现零,而解包可选值' – 2014-09-06 17:06:04

0

可能是你可以使用本地主机192.168.0.1替换,与iOS模拟器调试时(也就是真正的设备应该用你的服务器的IP)。

我也无法在模拟器上使用IP地址访问我的测试服务器。但是当我使用本地主机或120.0.0.1时,模拟器可以很好地与我的测试服务器配合使用。

2

您的Info.plist文件中是否包含App Transport Security Settings? 如果没有那么对于调试目的,你可以将它们像

<key>NSAppTransportSecurity</key> 
    <dict> 
     <key>NSAllowsArbitraryLoads</key> 
     <true/> 
    </dict> 

这样的设置允许发出请求到任何服务器。 但是不要将它们用于发布版本。

相关问题