php - 发送json数据到php返回null

标签 php ios json

我正在尝试通过json格式将数据数组(在字典中)发送到服务器端的php文件,以便以后将数据存储到MySQL数据库中。但是,看起来php接收的数据对象始终为null。

这是Objective-C行:

NSURL *url = [NSURL URLWithString:@"http://myaddress/upload.php"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"application/json; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:self.sentData];

NSError *error = nil;
NSURLResponse *response = nil;
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];

if (error) NSLog(@"%s: NSURLConnection error: %@", __FUNCTION__, error);        
NSString *responseString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
NSLog(@"responseString: %@",responseString);

这是php行:
<?php

$json_data=file_get_contents('php://input');
$post_data = json_decode($json_data);

if (is_array($post_data))
$response = array("status" => "ok", "code" => 0, "original request" => $post_data);
else
$response = array("status" => "error", "code" => -1, "original_request" => $post_data);

$processed = json_encode($response);
echo $processed;

?>

Xcode上的调试消息如下:
2015-07-19 17:34:35.900 PhpPostTest[1531:557248] responseString: {"status":"error","code":-1,"original_request":null}

看起来连接正常,但是响应字符串指示php端接收的数据为空。有人可以建议这里有什么潜在问题吗?

最佳答案

每当您尝试解码的JSON格式不正确时,json_decode()将返回NULL

您可以运行echo $json_data;来验证您的JSON实际上是JSON。

关于php - 发送json数据到php返回null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31506756/

相关文章:

php - mysql_connect 在 XAMPP 中不工作

php - 在函数调用中返回许多列

php - 修改一个 laravel blade 变量而不显示它

c++ - 从MAP中的C++文件中读取键值对(Json格式)

javascript - 如何解决 Access-Control-Allow-Origin 错误?

php - Symfony - 使用命令运行 Phing 任务

ios - Swift 4 UITableView 使一个单元格成为 UITextView

ios - 如何检测单元格是否添加角标(Badge)?

ios - Cordova/PhoneGap-2.5.0 的推送通知插件不工作

php - 用php返回json数据