2

json オブジェクトを使用してサーバーからデータを取得する iOS (5) アプリを作成しようとしています。アプリから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 オブジェクトです。

4

3 に答える 3

1

必ずコンテンツ タイプを含むヘッダーを送信してください。

header('Content-type: application/json');
print json_encode($array);
exit();
于 2012-06-12T12:48:14.637 に答える
0

URLは文字列を出力するので、次を使用します

NSURL *url = [NSURL URLWithString:@"192.168.1.100/testing/get.php?number=5"];
NSString *jsonVal = [NSString stringWithContentsOfURL:url];
NSLog(jsonVal);
于 2012-06-12T12:52:16.757 に答える
0

私の推測では、あなたのデバイスはそのローカル IP アドレスを認識していないのでしょうか? それか、おそらくjsonの解析の方がはるかに厳密です。PHPスクリプトでjsonヘッダーを出力しましたか?

于 2012-06-12T12:50:00.140 に答える