J'ai essayé de créer une classe d'assistance pour ma demande POST et je souhaite renvoyer la réponse. Cependant, comme la demande de publication est asynchrone, cela m'a fait me sentir un peu confus.Utilisation d'une fonction d'aide pour la demande POST
J'ai essayé de retourner NSString mais il ne m'a pas laissé retourner ni response
ni responseString
. Il m'a juste laissé mettre return "A"
. J'ai essayé d'utiliser -> NSURLResponse
mais je ne pouvais pas le faire fonctionner non plus.
Quelle est la bonne façon de faire une telle méthode? (Il est aussi très bien si je fais un chèque après que je reçois une réponse, et retourne vrai ou faux selon la réponse)
class func hello(name: String) -> NSString {
let request = NSMutableURLRequest(URL: NSURL(string: "http://www.thisismylink.com/postName.php")!)
request.HTTPMethod = "POST"
let postString = "Hi, \(name)"
request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding)
let task = NSURLSession.sharedSession().dataTaskWithRequest(request) { data, response, error in
guard error == nil && data != nil else { // check for fundamental networking error
print("error=\(error)")
return
}
if let httpStatus = response as? NSHTTPURLResponse where httpStatus.statusCode != 200 { // check for http errors
print("statusCode should be 200, but is \(httpStatus.statusCode)")
print("response = \(response)")
}
let responseString = NSString(data: data!, encoding: NSUTF8StringEncoding)
print("responseString = \(responseString)")
}
task.resume()
return "A"
}
Wow! Ace homme !! Merci!!! – senty
note le changement de ligne 'let responseString = Chaîne (données: données!, Codage: NSUTF8StringEncoding)' changé NSString en chaîne pour être plus swifty – Fonix
Notez également que je n'ai inclus aucun code de gestion des erreurs, vous êtes seul pour savoir comment gérer cette – Fonix