J'essaie de publier des données de formulaire en utilisant webservice, nom d'utilisateur & mot de passe, mais en réponse, il montre une erreur indiquant "Impossible de se connecter au serveur.".Comment envoyer des données de formulaire dans la requête POST dans Swift 3
S'il vous plaît aidez-moi à envoyer des données de formulaire dans la demande POST.
let dict:[String:String] = ["userName": userName as! String, "password": password as! String]
do {
let jsonData = try JSONSerialization.data(withJSONObject: dict, options: .prettyPrinted)
let url = URL(string: "(some url)")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("application/x-www-form-urlencoded charset=utf-8", forHTTPHeaderField: "Content-Type")
request.httpBody = jsonData
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if error != nil {
print(error!.localizedDescription)
return
}
do {
let json = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as? NSDictionary
if let parseJSON = json {
let resultValue:String = parseJSON["success"] as! String;
print("result: \(resultValue)")
print(parseJSON)
}
} catch let error as NSError {
print(error)
}
}
task.resume()
} catch {
print(error.localizedDescription)
}
J'ai essayé d'ajouter des valeurs dans la requête, des valeurs peuvent être manquantes dans la requête formée. S'il vous plaît aider!
Consultez également le pod AlamoFire pour ce faire une n façon plus facile. – TheValyreanGroup
@TheValyreanGroup Avoir utilisé Alamofire, le même problème s'est produit là aussi. L'API fonctionne correctement dans POSTMAN –
@TheValyreanGroup: mon code: let urlString = "https://xxx.xxxx.xxxx.xxx/login" let headers = [ "Content-Type": "application/formulaire-data " ] Alamofire.request (urlString, méthode: .post, paramètres: [" utilisateur ": Nom d'utilisateur," mot de passe ": mot de passe], l'encodage: JSONEncoding.default, les en-têtes des en-têtes): .responseJSON { réponse en réponse au commutateur .result { cas .success: impression (réponse) pause cas .failure (LET erreur): impression (erreur) }} –