首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >NSURLConnection失败的原因,错误Domain=NSURLErrorDomain代码=-1005“网络连接丢失”。在Swift iOS8?

NSURLConnection失败的原因,错误Domain=NSURLErrorDomain代码=-1005“网络连接丢失”。在Swift iOS8?
EN

Stack Overflow用户
提问于 2014-09-04 03:02:31
回答 2查看 15.5K关注 0票数 9

我使用Xcode beta6。我创建了一个应用程序,它有一个Downloader类,这是Downloader类:

代码语言:javascript
运行
复制
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)
    }

}

当服务器使用局域网电缆连接到网络上时,这个类工作得很好,并且得到了正确的JSON结果,但是当这个服务器通过WiFi连接到相同的网络时,我从iOS设备上得到了这个错误:

代码语言:javascript
运行
复制
Error Domain=NSURLErrorDomain Code=-1005 "The network connection was lost."

但这真的很奇怪,因为如果我将json路径粘贴到浏览器中,我会看到json..所以只在iOS设备上不能处理,但我不知道我应该修复什么。有谁可以帮我?

因此,如果我用来开发的Mac mini在Lan上,而Server在Lan上,那么一切都很好。但是当我的Mac mini在WiFi上,而我的服务器在Wifi上时,我得到了这个错误...

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-04 03:18:06

那么,我的第一个问题是,您是否尝试过在Objective-C / iOS 7中使用相同的逻辑/代码来完成相同的任务?这将让我们知道这是Swift、iOS 8中的问题,还是您的代码中的问题。如果您有,请在编辑/更新中发布此代码。

第二个问题:为什么要覆盖接受编码?如果您指定了标头值,许多服务器会在那里需要一些东西。最好把它去掉。

第三个问题:你运行的是什么版本的iOS 8测试版?FWIW,对SO的简单搜索显示了这个问题:Error Domain=NSURLErrorDomain Code=-1005 "The network connection was lost."

所以这可能是iOS 8测试版中的一个bug。我建议先试试objective-c,如果这也失败了,去开发者论坛发布你的问题,引起苹果的注意。你可能还想为它打开一个雷达。

票数 2
EN

Stack Overflow用户

发布于 2015-06-14 02:06:32

我完全解决了这个问题,我删除了我的Wi-Fi网络连接,并通过从网络连接列表中选择它并再次提供密码来重新实例化它。在页面底部查看我的堆栈溢出响应:

NSURLConnection GET request returns -1005, "the network connection was lost"

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25651819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档