2014-09-06 126 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> 

這樣的設置允許發出請求到任何服務器。 但是不要將它們用於發佈版本。

相關問題