2017-07-22 15 views
-1

J'essaie d'exécuter une requête HTTP dans Swift, pour POST 2 paramètres à une URL. Mais il renvoie toujours la page d'erreur 403, quel est le problème?URLSession renvoie la page d'erreur HTTP 403

Je tente d'ajouter un en-tête Content-type, mais cela ne fonctionne pas.

code:

print("ENVIAR DATOS") 

    let url = NSURL(string: "https://www.portaljuridico.com.co/portaljuridico/User/login") 

    let request = NSMutableURLRequest(url: url! as URL) 
    request.httpMethod = "POST" 

    let param = ["username" : "juan", "password" : "123"] 
    guard let httpBody = try? JSONSerialization.data(withJSONObject: param, options: []) else { return } 

    //request.addValue("application/form-data", forHTTPHeaderField: "Content-Type") 
    //request.setValue("application/json", forHTTPHeaderField: "Content-Type") 
    //request.addValue("application/json", forHTTPHeaderField: "Accept") 
    request.httpBody = httpBody 

    let task = URLSession.shared.dataTask(with: request as URLRequest) { data, response, error in 
     guard let data = data, error == nil else { 
      print("error = \(error!)") 
      return 
     } 

     if let httpStatus = response as? HTTPURLResponse, httpStatus.statusCode != 200 { 
      print("statusCode should be 200, but is \(httpStatus.statusCode)") 
      print("response = \(response!)") 
     } 

     let responseString = String(data: data, encoding: .utf8) 
     print("responseString = \(responseString!)") 
    } 

    task.resume() 
+0

Utilisez postString comme dictionnaire et non comme chaîne. Essayez aussi? JSONSerialization.data (withJSONObject: postString, options: .prettyPrinted) –

+0

Je viens de le mettre à jour et ne fonctionne toujours pas :( –

+0

Les serveurs acceptent les données POST à ​​leur guise.Quel type de données votre serveur accepte-t-il vraiment JSON? – OOPer

Répondre

0

Endpoint semble http://www.portaljuridico.com.co/portaljuridico/User/loginUser et redirige vers le http://www.portaljuridico.com.co/portaljuridico/Login utilisateur/mot de passe incorrect.