使用 PHP 在 Swift 中接收 POST
Receive POST in Swift using PHP
早上好,
我正在尝试使用 Swift 和调用的 .php 文件通过 PHP 文件发送变量 (id_post),但是 ¨id_post¨ 是空的,因为当我打印 ¨id_post¨ 的值时它总是空的。
你知道为什么会这样吗?我在 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).'}';
提前致谢,
此致。
我唯一需要更改的是“http://www.website.com" to "http://website.com”。我不知道为什么它不能那样工作,但我 post 如果有人遇到同样奇怪的问题,我会提供解决方案。
此致,
早上好,
我正在尝试使用 Swift 和调用的 .php 文件通过 PHP 文件发送变量 (id_post),但是 ¨id_post¨ 是空的,因为当我打印 ¨id_post¨ 的值时它总是空的。
你知道为什么会这样吗?我在 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).'}';
提前致谢,
此致。
我唯一需要更改的是“http://www.website.com" to "http://website.com”。我不知道为什么它不能那样工作,但我 post 如果有人遇到同样奇怪的问题,我会提供解决方案。
此致,