2016-09-29 1 views
0

Lorsque j'utilise AFNetworking pour publier des paramètres est NSMutableDictionary, cette demande est réussie.Dans NSURLSession HTTPBody doit être NSData?

Mais lorsque j'ai utilisé NSURLSession, la requête self.request! .HTTPBody doit être NSData, donc la requête a échoué. Comment puis-je utiliser NSURLSession pour faire une demande réussie?

postDict[@"jgId"] = "1000000000"; 
[manager GET:SELECTDEPART parameters:postDict success:^(AFHTTPRequestOperation *operation, id responseObject) { 

} failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
    NSLog(@"-----%@", error); 
}]; 

//use NSData 

NSJSONSerialization.dataWithJSONObject(postDict, options: NSJSONWritingOptions.PrettyPrinted) 

Aidez-moi s'il vous plaît.

Répondre

0
let params = ["jgId": "1000000000"] 
let data = try? JSONSerialization.data(withJSONObject: params, options: [JSONSerialization.WritingOptions(rawValue: 0)]) 

var request = URLRequest(url: URL(string: "https://my-url.com")!, cachePolicy: .returnCacheDataElseLoad, timeoutInterval: 30) 
request.httpMethod = "POST" 
request.httpBody = data 
request.allHTTPHeaderFields = [:] 

URLSession.shared.dataTask(with: request) { (data, response, error) in 

} 
+0

Vous devez donner une réponse à l'objectif C pas rapide, car OP travaille avec Obj C. –

0

Vous utilisez la méthode GET pour demander des données au serveur, vos paramètres ne sont donc pas envoyés à la demande par les données HTTPBody. Votre params est passé simple via l'URL de demande.

En question Vous avez SELECTDEPART comme URL de base de la demande et postDict comme paramètre. Le code suivant l'utilisation NSURLSession pour faire GET demande avec parameters