J'essaie d'obtenir une réponse d'un service web en utilisant une demande de publication dans Swift. Mais je reçois l'erreur "Les données ne peuvent pas être lues car elles ne sont pas dans le bon format". Voici le code:Demande POST dans Swift 3.0
let dict = ["UserName": "2222211111",
"Password": "123456",
"AppName": "xyz"]
as [String: Any]
//create the session object
let session = URLSession.shared
let url = "someurl.svc/somefunction"
//now create the URLRequest object using the url object
var request = URLRequest(url: url)
request.httpMethod = "POST" //set http method as POST
do {
request.httpBody = try JSONSerialization.data(withJSONObject: dict, options: .prettyPrinted)
} catch let error {
print(error.localizedDescription)
}
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("application/json", forHTTPHeaderField: "Accept")
//create dataTask using the session object to send data to the server
let task = session.dataTask(with: request as URLRequest, completionHandler: { data, response, error in
guard error == nil else {
return
}
guard let data = data else {
return
}
do {
//create json object from data
if let json = try JSONSerialization.jsonObject(with: data, options: .mutableContainers) as? [String: Any] {
print(json)
}
} catch let error {
print(error.localizedDescription)
}
})
task.resume()
J'ai même utilisé les bibliothèques de tiers comme Alamofire, en réseau, etc. De ces bibliothèques que je reçois le code 3840, réponse invalide autour de caractère 3. Mais j'obtenir une réponse correcte en utilisant le code Objective-C ou en utilisant le logiciel Postman. Quelqu'un peut-il m'aider s'il vous plaît ici. Merci
avez-vous essayé alamofire? –
La réponse que vous obtenez n'est peut-être pas dans un format JSON valide. Essayez d'imprimer la réponse avant d'essayer de la sérialiser. Ce serait un bon début. – Malik
ajoutez quelle réponse vous obtenez. Postman résout de nombreux problèmes à son propre niveau, il n'est donc pas nécessaire que l'API travaillant sur Postman fonctionne sur l'application. – Priyal