使用PHP在Swift中接收POST

时间:2015-11-15 10:37:39

标签: php swift nsurl

早上好,

我正在尝试使用Swift和它调用的.php文件通过PHP文件发送变量(id_post),但是¨id_post¨是空的,因为当我打印¨id_post的值时,它总是为空。 / p>

你知道为什么会这样吗?从1个月前开始,我在另一个项目中使用了相同的功能,并且工作正常,而不是。我错过了什么吗?

此外,我测试了¨postString¨值,它总是正确的(id_post = 64)。

这是我的Swift代码:

func requestPost () {

    let request = NSMutableURLRequest(URL: NSURL(string: "http://www.website.com/post.php")!)
    request.HTTPMethod = "POST"
    let postString = "id_post="+id_post

    request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding)
    let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
        data, response, error in

        if error != nil {
            return
        }

        let responseString = NSString(data: data!, encoding: NSUTF8StringEncoding)!
        print("post: \(responseString)")

        self.posts = self.parseJsonData(data!)

        // Reload table view
        dispatch_async(dispatch_get_main_queue(), {
            self.tableView.reloadData()
        })
    }
    task.resume()
}

这是我的PHP代码:

$dbhost="localhost";
$dbusuario="dbuser";
$dbpassword="dbpassword";
$db="db";
$conexion = mysql_connect($dbhost, $dbusuario, $dbpassword);
mysql_select_db($db, $conexion);
mysql_query("SET NAMES 'utf8'");

$id_post=$_POST['id_post'];

$return_arr = array();

$fetch = mysql_query("SELECT * FROM posts WHERE id=$id_post");
while ($row = mysql_fetch_array($fetch, MYSQL_ASSOC))
{
$row_array['id'] = $row['id'];

$row_array['image'] = $row['image'];

array_push($return_arr,$row_array);
}

echo '{"post": '.json_encode($return_arr).'}';

提前致谢,

问候。

1 个答案:

答案 0 :(得分:0)

我唯一要改变的是“http://www.website.com”到“http://website.com”。我不知道为什么它没有那样工作,但如果有人有同样的奇怪问题,我会发布解决方案。

此致