我使用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)
}
}
当服务器使用局域网电缆连接到网络上时,这个类工作得很好,并且得到了正确的JSON结果,但是当这个服务器通过WiFi连接到相同的网络时,我从iOS设备上得到了这个错误:
Error Domain=NSURLErrorDomain Code=-1005 "The network connection was lost."
但这真的很奇怪,因为如果我将json路径粘贴到浏览器中,我会看到json..所以只在iOS设备上不能处理,但我不知道我应该修复什么。有谁可以帮我?
因此,如果我用来开发的Mac mini在Lan上,而Server在Lan上,那么一切都很好。但是当我的Mac mini在WiFi上,而我的服务器在Wifi上时,我得到了这个错误...
发布于 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,如果这也失败了,去开发者论坛发布你的问题,引起苹果的注意。你可能还想为它打开一个雷达。
发布于 2015-06-14 02:06:32
我完全解决了这个问题,我删除了我的Wi-Fi网络连接,并通过从网络连接列表中选择它并再次提供密码来重新实例化它。在页面底部查看我的堆栈溢出响应:
NSURLConnection GET request returns -1005, "the network connection was lost"
https://stackoverflow.com/questions/25651819
复制相似问题