簡體   English   中英

為什么NSURLConnection失敗,錯誤域= NSURLErrorDomain Code = -1005“網絡連接丟失。”在Swift iOS8中?

[英]Why NSURLConnection failed with Error Domain=NSURLErrorDomain Code=-1005 “The network connection was lost.” in Swift iOS8?

我使用Xcode beta6。 我創建了一個具有Downloader類的應用程序,這是Downloader類:

class Downloader : NSObject {

    private var _connection : NSURLConnection?
    private var _downloadedData: NSMutableData?

    func getDataFromURLString(urlToRequest: String!, aType: DownloadedDataType) {

        _downloadedData = NSMutableData()

        var request : NSMutableURLRequest = NSMutableURLRequest(URL: NSURL(string: urlToRequest), cachePolicy: .ReloadIgnoringLocalCacheData, timeoutInterval: 20.0)
        request.setValue("", forHTTPHeaderField: "Accept-Encoding")

        self._connection = NSURLConnection(request: request, delegate:self)
    }

    func connection(connection: NSURLConnection!, didReceiveResponse response: NSURLResponse!) {
        println("Data expected size: \(response.expectedContentLength)")
    }

    func connectionDidFinishLoading(connection: NSURLConnection!) {
        println("finished")
    }

    func connection(connection: NSURLConnection!, didFailWithError error: NSError!) {
        println("error: \(error)")
    }

    func connection(connection: NSURLConnection!, didReceiveData data: NSData!)  {
        _downloadedData?.appendData(data)
    }

}

當服務器使用LAN電纜連接到網絡時,此類運行良好並獲得正確的JSON結果,但當此服務器通過WiFi連接到同一網絡時,我從iOS設備收到此錯誤:

Error Domain=NSURLErrorDomain Code=-1005 "The network connection was lost."

但它真的很奇怪,因為如果我將json路徑粘貼到瀏覽器上,我會看到json ..所以只有在iOS設備上無法處理,但我不知道應該修復什么..任何人都可以幫助我嗎?

所以,如果我使用的Mac mini是在Lan上開發的,而服務器在Lan上,那么一切正常。 但是,當我的Mac mini在WiFi上而我的服務器在Wifi上時,我收到此錯誤...

那么,我的第一個問題是你是否嘗試過在Objective-C / iOS 7中使用相同的邏輯/代碼完成相同的任務? 如果它是Swift,iOS 8中的問題或代碼中的問題,這將讓我們知道。 如果有,請在編輯/更新中發布此代碼。

第二個問題:為什么要重寫接受編碼? 如果指定標頭值,許多服務器需要一些東西。 最好刪除它。

第三個問題:您運行的是哪個版本的iOS 8測試版? FWIW,SO的簡單搜索顯示了這個問題: Error Domain = NSURLErrorDomain Code = -1005“網絡連接丟失了。”

所以它可能是iOS 8測試版中的一個錯誤。 我建議首先嘗試使用objective-c,如果這也打破了,請轉到開發人員論壇並發布您的問題以引起Apple的注意。 您可能還想為它打開雷達。

我通過刪除我的Wi-Fi網絡連接並通過從網絡連接列表中選擇並再次提供密碼來重新實例化,從而徹底解決了這個問題。 請參閱頁面底部的堆棧溢出響應:

NSURLConnection GET請求返回-1005,“網絡連接丟失”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM