我正在尝试编写一个iOS(5)应用程序,该应用程序使用json对象从服务器获取数据。我从应用程序调用php脚本,从服务器获取数据,将其编码为json,然后输出。 php脚本中的那一行是:
$json_encoded = json_encode($normal_array, JSON_FORCE_OBJECT)
echo $json_encoded;
但是当我这样做时:
NSURL *url = [NSURL URLWithString:@"192.168.1.100/testing/get.php?number=5"];
NSData *data = [NSData dataWithContentsOfURL:url];
数据变量大小为0字节且不包含任何数据。
有谁能告诉我为什么dataWithContentsOfURL会得到空的东西?回声不够吗?我是否需要发送回复或类似的内容?如果是这样,我将如何从PHP脚本发送响应?如果我在浏览器中调用完全相同的脚本,则输出:
{
"0": {
"0":"asdfgh",
"1":"2012-06-11 16:21:15"
},
"1": {
"0":"jumps over",
"1":"2012-06-11 16:20:52"
},
"2": {
"0":"the quick brown fox",
"1":"2012-06-11 16:20:40"
},
"3": {
"0":"the quick brown fox",
"1":"2012-06-11 16:20:40"
},
"4": {
"0":"the quick brown fox",
"1":"2012-06-11 16:20:21"
}
}
这是一个有效的JSON对象,据我所知。
答案 0 :(得分:1)
确保发送包含内容类型的标头。
header('Content-type: application/json');
print json_encode($array);
exit();
答案 1 :(得分:0)
我的猜测是你的设备没有看到本地的IP地址?无论是那个或者它的json解析都要严格得多。你用php脚本输出了json标题吗?
答案 2 :(得分:0)
url输出字符串,因此请使用以下
NSURL *url = [NSURL URLWithString:@"192.168.1.100/testing/get.php?number=5"];
NSString *jsonVal = [NSString stringWithContentsOfURL:url];
NSLog(jsonVal);