如何在php脚本中访问json数据,它是通过http-post收到的? 我正在iOS上做以下事情:
NSData *data = [NSJSONSerialization dataWithJSONObject:object options:0 error:NULL];
NSMutableURLRequest *req = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://example.com/script.php"]];
[req setHTTPMethod:@"POST"];
[req setHTTPBody:data];
[NSURLConnection sendSynchronousRequest:req returningResponse:&response error:&err];
如何在php脚本中访问此数据?换句话说,当我在php脚本中调用json_decode(...)
时,...
是什么?
答案 0 :(得分:14)
如果您使用POST方法发送JSON,可以使用以下代码
在PHP中接收它<?php $handle = fopen('php://input','r');
$jsonInput = fgets($handle);
// Decoding JSON into an Array
$decoded = json_decode($jsonInput,true);
?>
答案 1 :(得分:1)
使用iOS发送的帖子请求不适用于$ _POST。如果使用js发出类似请求,则post中的json可以正常工作。
答案 2 :(得分:0)
在php脚本中,您可以获取POST数据并执行
json_decode($data);
这将为您提供一个可以使用的对象。
答案 3 :(得分:0)
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setHTTPBody: jsonData];
[request setValue:@"text/html" forHTTPHeaderField:@"Content-Type"];
[request setValue:[NSString stringWithFormat:@"%d", [jsonData length]] forHTTPHeaderField:@"Content-Length"];
此代码可用于发送回复