web-dev-qa-db-fra.com

Xcode: Alamofire obtient une réponse en chaîne

Je suis nouveau dans IOS développement et apprentissage en réseau avec Alamofire

j'essaie de me connecter .... chaque fois que les informations d'identification sont correctes, le fichier .php renvoie un json et je peux obtenir ce json de Alamofire par le code suivant:

    Alamofire.request(loginUrl, method: .post, parameters: parameters).responseJSON { (response:DataResponse<Any>) in
        print("String:\(response.result.value)")
        switch(response.result) {
        case .success(_):
            if let data = response.result.value{
                print(self.loginUrl)
                print(data)
            }

        case .failure(_):

            print(self.loginUrl)
            print("failed")
            print("Error message:\(response.result.error)")
            break

        }
    }

maintenant ... chaque fois que les informations d'identification sont fausses, le .php ne donne pas le json ... au lieu de cela il retourne une chaîne ... par exemple "mot_de_passe" ou "userLocked" etc. la réponse de String par Alamofire?

6
Sam

Si vous voulezJSONresponse utilisez .responseJSON , si vous voulez String response utilisez .responseString . Si vous voulez les deux utilisez les deux. J'espère que cette aide.

Alamofire.request(loginUrl, method: .post, parameters: parameters)
     .responseJSON { response in
       print("JSON:\(response.result.value)")
       switch(response.result) {
       case .success(_):
          if let data = response.result.value{
             print(data)
           }

        case .failure(_):

            print("Error message:\(response.result.error)")
            break

        }
    }
     .responseString { response in
       print("String:\(response.result.value)")
       switch(response.result) {
       case .success(_):
          if let data = response.result.value{
             print(data)
            }

       case .failure(_):
           print("Error message:\(response.result.error)")
           break     
        }
    }
18
Arafin Russell

Je résous ceci en:

print(response.request)  // original URL request
print(response.response) // URL response
print(response.data)     // server data
print(response.result)   // result of response serialization

source: https://github.com/Alamofire/Alamofire/issues/818

0
Firda Sahidi