AFNetworking et rapide

Je vais essayer d'obtenir une réponse JSON à l'aide de Swift.

J'ai reniflé la demande et la réponse -> tout est ok. Toutefois, la valeur de retour est toujours nil.

let httpClient = AppDelegate.appDelegate().httpRequestOperationManager as AFHTTPRequestOperationManager;

let path = "/daten/wfs";
let query = "?service=WFS&request=GetFeature&version=1.1.0&typeName=ogdwien:AMPELOGD&srsName=EPSG:4326&outputFormat=json".stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding);

func successBlock(operation: AFHTTPRequestOperation!, responseObject: AnyObject!) {
    println("JSON: " + "\(responseObject)")
}

func errorBlock(operation: AFHTTPRequestOperation!, error:NSError!) {
    println("Error: " + error.localizedDescription)
}

let urlString = "\(path)" + "/" + "\(query)"
println("urlString: " + httpClient.baseURL.absoluteString + urlString)

J'ai aussi essayé de cette façon:

httpClient.GET(urlString, parameters: nil,
    success: { (operation: AFHTTPRequestOperation!, responseObject: AnyObject!) -> Void in
        println("Success")
        println("JSON: " + "\(responseObject)")
    },
    failure:{ (operation: AFHTTPRequestOperation!, error:NSError!) -> Void in
        println("Failure")
    })

... Mais le responseObject semble toujours être nil

EDIT:

Peut-être la raison en est la possible mauvaise initialisation dans mon AppDelegate:

var httpRequestOperationManager: AFHTTPRequestOperationManager? //JAVA SERVER Client

class func appDelegate() -> AppDelegate {
    return UIApplication.sharedApplication().delegate as AppDelegate
}

func configureWebservice() {
    let requestSerializer = AFJSONRequestSerializer()
    requestSerializer.setValue("1234567890", forHTTPHeaderField: "clientId")
    requestSerializer.setValue("Test", forHTTPHeaderField: "appName")
    requestSerializer.setValue("1.0.0", forHTTPHeaderField: "appVersion")

    let responseSerializer = AFJSONResponseSerializer()

    AFNetworkActivityIndicatorManager.sharedManager().enabled = true

    //##### HTTP #####
    let baseURL = NSURL(string: "http://data.wien.gv.at");
    httpRequestOperationManager = AFHTTPRequestOperationManager(baseURL: baseURL))

    httpRequestOperationManager!.requestSerializer = requestSerializer
    httpRequestOperationManager!.responseSerializer = responseSerializer
}

Des suggestions de ce que je fais mal?

Je vous recommande fortement d'utiliser les Alamofire au lieu de AFNetworking. Il est le successeur de AFNetworking complètement réécrit et Swift.

OriginalL'auteur user707342 | 2014-06-05