Я пробовал сделать вспомогательный класс для моего запроса POST и хочу вернуть ответ. Однако, поскольку пост-запрос является асинхронным, это заставило меня немного смутить.Использование функции помощника для запроса POST
Я попытался вернуть NSString, однако он не позволил мне вернуть ни response
, ни responseString
. Просто позвольте мне поставить return "A"
. Я попытался использовать -> NSURLResponse
, но не смог заставить его работать.
Каков правильный способ создания вспомогательного метода? (Это также хорошо, если я сделаю чек после того как я получить ответ, и возвращает истину или ложь в зависимости от ответа)
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! Человек-туз !! Благодаря!!! – senty
Обратите внимание на изменение строки 'let responseString = String (data: data !, encoding: NSUTF8StringEncoding)' изменил NSString на String, чтобы быть более swifty – Fonix
также обратите внимание, что я не включал код обработки ошибок, вы сами по себе, как справиться с этим – Fonix