Tôi gặp sự cố khi tôi gửi yêu cầu POST tới API của tôi trên máy chủ của mình, tôi đã theo nhiều hướng dẫn khác nhau nhưng vẫn không hoạt động. Tôi biết vấn đề của tôi là với yêu cầu POST nhưng tôi không thể giải quyết nó! Vì vậy, đây là mã của tôi trong Swift và API của tôi bằng php: (và có, tôi đã thay thế xxxx bằng các ID thực trong mã của tôi)POST bằng swift và API
Để tổng hợp máy chủ nhận yêu cầu và ví dụ nếu tôi nhập thủ công pseudo nó hoạt động, đó là thực sự là phương thức POST người không hoạt động .. các máy chủ không nhận tham số POST
mã Swift:
var request = NSMutableURLRequest(URL: NSURL(string: "http://localhost:8888/academy/test.php")!)
var session = NSURLSession.sharedSession()
request.HTTPMethod = "POST"
var params = ["pseudo":"test"] as Dictionary<String, String>
var err: NSError?
request.HTTPBody = NSJSONSerialization.dataWithJSONObject(params, options: nil, error: &err)
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("application/json", forHTTPHeaderField: "Accept")
var task = session.dataTaskWithRequest(request, completionHandler: {data, response, error -> Void in
println("Response: \(response)")
var strData = NSString(data: data, encoding: NSUTF8StringEncoding)
println("Body: \(strData)")
var err: NSError?
var json = NSJSONSerialization.JSONObjectWithData(data, options: .MutableLeaves, error: &err) as? NSDictionary
// Did the JSONObjectWithData constructor return an error? If so, log the error to the console
if(err != nil) {
println(err!.localizedDescription)
let jsonStr = NSString(data: data, encoding: NSUTF8StringEncoding)
println("Error could not parse JSON: '\(jsonStr)'")
}
else {
// The JSONObjectWithData constructor didn't return an error. But, we should still
// check and make sure that json has a value using optional binding.
if let parseJSON = json {
// Okay, the parsedJSON is here, let's get the value for 'success' out of it
var success = parseJSON["success"] as? Int
println("Succes: \(success)")
}
else {
// Woa, okay the json object was nil, something went worng. Maybe the server isn't running?
let jsonStr = NSString(data: data, encoding: NSUTF8StringEncoding)
println("Error could not parse JSON: \(jsonStr)")
}
}
})
task.resume()*/
PHP Code:
$BDD_hote = 'xxxxx';
$BDD_bd = 'xxxxx';
$BDD_utilisateur = 'xxxxx';
$BDD_mot_passe = 'xxxxx';
try{
$bdd = new PDO('mysql:host='.$BDD_hote.';dbname='.$BDD_bd, $BDD_utilisateur, $BDD_mot_passe);
$bdd->exec("SET CHARACTER SET utf8");
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
}
catch(PDOException $e){
echo 'Erreur : '.$e->getMessage();
echo 'N° : '.$e->getCode();
}
$pseudo = addslashes($_POST["pseudo"]);
$req = $bdd->query("SELECT * from users WHERE pseudo='$pseudo'");
$resultArray = array();
$donnees = $req->fetch();
echo json_encode($donnees);
Cảm ơn trước :)
Vui lòng cung cấp thêm một chút chi tiết về "không hoạt động"? Từ đầu và tiếp tục, bước nào không cho bạn kết quả mong đợi. Máy chủ có nhận được yêu cầu không? – kcome
Vì vậy, máy chủ nhận được yêu cầu và ví dụ nếu tôi nhập thủ công một giả mạo, nó thực sự là phương thức POST không hoạt động .. Máy chủ không nhận được thông số POST – sebasthug
Bằng cách này, điểm nhỏ, nhưng hãy xem tài liệu ['addSlashes'] (http://php.net/manual/en/function.addslashes.php) khuyên bạn sử dụng [' mysqli_real_escape_string'] (http://php.net/manual/en/mysqli .real-escape-string.php), thay vào đó. – Rob