将数据从PHP脚本发送到iOS

时间:2012-06-12 12:44:56

标签: php mysql ios json

我正在尝试编写一个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对象,据我所知。

3 个答案:

答案 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);