Je crée une page de connexion où une fois que l'utilisateur entre le nom d'utilisateur mot de passe puis les données sont envoyées à l'API et si les données saisies sont correctes puis renvoie le succès. Si le résultat est le succès, je dois obtenir la clé de l'utilisateur de l'utilisateur qui est renvoyé par la Serverin ce formulaire:Comment obtenir des données du POST json
{
"STATUS_DESC": "Success",
"STATUS_CODE": 1,
"email": "[email protected]",
"api_token": "Mqbraok1zsdasdasd4j3m"
}
Maintenant je dois stocker ce jeton api. Pour cela, je suis en train cette fonction, mais sa ne fonctionne pas -
@IBAction func signInBtnPressed(_ sender: Any) {
let email : String! = self.usernameField.text
let password : String! = self.passwordField.text
var request = URLRequest(url: URL(string: "\(URL_BASE)\(AUTH)\(LOGIN)")!)
request.httpMethod = "POST"
let postString = "email=\(email!)&&password=\(password!)"
request.httpBody = postString.data(using: .utf8)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data, error == nil else { // check for fundamental networking error
print("error=\(String(describing: error))")
print("cant run")
return
}
if let httpStatus = response as? HTTPURLResponse, httpStatus.statusCode != 200 { // check for http errors
print("statusCode should be 200, but is \(httpStatus.statusCode)")
print("response = \(String(describing: response))")
print("\(email)")
print("\(password)")
}
else {
let responseString = String(data: data, encoding: .utf8)
print("responseString = \(String(describing: responseString))")
print("\(URL_BASE)\(AUTH)\(LOGIN)/?\(postString)")
Alamofire.request("\(URL_BASE)\(AUTH)\(LOGIN)/?\(postString)" , method : .post).responseJSON { response in
let result = response.result
if let dict = result.value as? Dictionary<String,AnyObject>
{
print(dict)
let userTOKEN = dict["api_token"] as! String
print(userTOKEN)
}
}
}
}
task.resume()
}
S'il vous plaît me dire quelle erreur fais et comment puis-je corriger ..
pouvez-vous dire où passer dans le code –
J'ai édité la réponse. J'ai ajouté du code pour stocker api_token à UserDefaults. Mettez ce code dans la fermeture de réponse de votre tâche de données. –
let task = URLSession.shared.dataTask (avec: request) {données, réponse, erreur dans {// Mettre le code ici} –