Von meiner Login-Ansicht in meinem iPhone app bekomme ich Benutzer Benutzername und Passwort, die ich an den Server senden möchte. Ich habe ein einfaches Skript gemacht, nur um zu überprüfen, ob meine Funktion zum Senden einer POST-Anfrage an den Server funktioniert. Ich habe keine Fehler, aber es scheint, dass mein Skript leer ist POST-Variablen. Hier ist meine Funktion für Parameter zu meinem PHP-Server-Skript zu senden:Swift POST-Anfrage nicht senden von Daten an Server
func postDataToURL() {
let json = [ "username" : "vanja", "password" : "dinamo", "iphone" : "1" ]
print (json)
do {
let jsonData = try NSJSONSerialization.dataWithJSONObject(json, options: .PrettyPrinted)
// create post request
let url = NSURL(string: "http://www.pnc.hr/rfid/login.php")!
let request = NSMutableURLRequest(URL: url)
request.HTTPMethod = "POST"
// insert json data to the request
request.setValue("application/json; charset=utf-8", forHTTPHeaderField: "Content-Type")
request.HTTPBody = jsonData
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("application/json", forHTTPHeaderField: "Accept")
let task = NSURLSession.sharedSession().dataTaskWithRequest(request){ data, response, error in
if error != nil{
print("Error 55 -> \(error)")
return
}
do {
let result = try NSJSONSerialization.JSONObjectWithData(data!, options: []) as? [String:AnyObject]
print("Result 34 -> \(result)")
} catch {
print("Error 43-> \(error)")
}
}
task.resume()
}
catch {
//handle error. Probably return or mark function as throws
print(error)
return
}
}
Hier ist mein PHP-Skript:
<?php
if (isset($_POST['username']))
$username = $_POST['username'];
else $username = "nista";
if (isset($_POST['password']))
$password = $_POST['password'];
else $password = "nista";
if (isset($_POST['iphone']))
$iphone = $_POST['iphone'];
else $iphone = "nista";
$arr = array('username' => $username, 'password' => $password, 'loggedIn' => 1, 'token' => 'ldsakj832WE32', 'iphone' => $iphone);
echo json_encode($arr);
>
Das Problem ist, dass Skript nicht von bekommt meine? POST-Variablen
für mich dieses Skript ohne irgendein Problem laufen.Sie müssen nur vertippte Header-Felder entfernen. // request.addValue ("application/json", forHTTPHeaderField: "Inhaltstyp") // request.addValue ("application/json", forHTTPHeaderField: "Accept") –