Download von JSON mit NSURLSession gibt keine Daten zurück
Ich versuche derzeit, JSON von einer URL herunterzuladen, zu analysieren und zu drucken. Bisher bin ich zu diesem Punkt gekommen:
1) Eine Klasse (JSONImport.swift), die meinen Import behandelt:
var data = NSMutableData();
let url = NSURL(string:"http://headers.jsontest.com");
var session = NSURLSession.sharedSession();
var jsonError:NSError?;
var response : NSURLResponse?;
func startConnection(){
let task:NSURLSessionDataTask = session.dataTaskWithURL(url!, completionHandler:apiHandler)
task.resume();
self.apiHandler(data,response: response,error: jsonError);
}
func apiHandler(data:NSData?, response:NSURLResponse?, error:NSError?)
{
do{
let jsonData : NSDictionary = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers) as! NSDictionary;
print(jsonData);
}
catch{
print("API error: \(error)");
}
}
MyProble ist, dass die Daten in
do{
let jsonData : NSDictionary = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers) as! NSDictionary;
print(jsonData);
}
bleibt leer. Wenn ich debugge, startet die Verbindung erfolgreich mit der angegebenen URL als Parameter. Meine jsonData-Variable wird jedoch nicht gedruckt. Stattdessen gibt der catch-Block den Fehler aus und gibt an, dass meine Variable keine Daten enthält:
API error: Error Domain=NSCocoaErrorDomain Code=3840 "No value."
Kann mir bitte jemand dabei helfen? Was vermisse ich
ielen Dank im Vorau
[Nach dem Wechsel von der NSURL-Verbindung zur NSURLSession bearbeitet]