Warum NSURLConnection failed with Error Domain=NSURLErrorDomain Code=-1005 "Die Netzwerkverbindung wurde unterbrochen." in Swift, iOS8?
Ich Xcode verwenden beta6.
Ich habe eine app, die ein Downloader-Klasse, und dies ist die Downloader-Klasse:
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)
}
}
Diese Klasse gut funktioniert und die richtigen JSON-Ergebnis, wenn der server über das Netzwerk mit LAN-Kabel, aber wenn dieser server, der mit dem gleichen Netzwerk über WLAN bekomme ich diese Fehler vom iOS-Gerät:
Error Domain=NSURLErrorDomain Code=-1005 "The network connection was lost."
Aber es ist wirklich seltsam, weil wenn ich fügen Sie die json-Pfad zu dem browser sehe ich die json.. Also nur auf iOS-Geräten cant handle, aber ich weiß nicht, was ich beheben sollte..
Kann mir jemand helfen?
Also Wenn mein Mac mini, was ich verwenden, zu entwickeln, ist auf Lan und der Server auf Lan, funktioniert alles einwandfrei.
Aber wenn mein Mac mini ist über WiFi und mein server ist über WLAN bekomme ich diesen Fehler...
- Beenden Sie den simulator und führen Sie Ihr Projekt.
- Möglich, Duplikat der NSURLConnection-GET-Anfrage gibt -1005, "die Netzwerkverbindung wurde unterbrochen"
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gut, meine erste Frage ist, haben Sie versucht, erreichen Sie die gleiche Aufgabe mit der gleichen Logik/code in Objective-C /iOS 7? Diese geben uns eine Idee, wenn es ein problem in Swift, iOS 8, oder ein problem in Ihrem code. Wenn Sie haben, bitte posten Sie diesen code in Bearbeiten/aktualisieren.
Zweite Frage: Warum sind Sie überschreiben den accept-encoding? Viele Server benötigen so etwas gibt wenn geben Sie die header-Wert. Am besten entfernen Sie diese.
Dritte Frage: Welche version der iOS 8 beta sind Sie? FWIW, eine einfache Suche, SO zeigten diese Frage:
Error Domain=NSURLErrorDomain Code=-1005 "Die Netzwerkverbindung wurde unterbrochen."
so könnte es ein bug in iOS 8 betas. Ich würde vorschlagen, versucht objective-c den ersten, und wenn das auch bricht, springen die Entwickler-Foren und posten Sie Ihre Frage zum Apple die Aufmerksamkeit auf Sie. Vielleicht wollen Sie auch öffnen Sie ein Radar dafür.
Ich völlig gelöst wird dieses problem durch löschen meiner Wi-Fi-Netzwerk-Verbindung und re-instanziieren Sie es, indem Sie es aus der Liste Netzwerkverbindung und das Kennwort erneut ein. Siehe mein stack overflow-Antwort hier unten auf der Seite:
NSURLConnection-GET-Anfrage gibt -1005, "die Netzwerkverbindung wurde unterbrochen"