2012-06-12 159 views
2

我想寫一個使用json對象從服務器獲取數據的iOS(5)應用程序。即時通訊從應用程序調用一個PHP腳本,從服務器獲取數據,將其編碼爲json,然後輸出它。在PHP腳本,做該行是:從PHP腳本發送數據到iOS

$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對象。

回答

1

請確保您發送的內容類型爲標頭。

header('Content-type: application/json'); 
print json_encode($array); 
exit(); 
0

我的猜測是你的設備沒有看到本地IP地址?無論是或者它可能是json解析更嚴格。你用PHP腳本輸出了json頭文件嗎?

0

的網址輸出字符串,所以使用下面

NSURL *url = [NSURL URLWithString:@"192.168.1.100/testing/get.php?number=5"]; 
NSString *jsonVal = [NSString stringWithContentsOfURL:url]; 
NSLog(jsonVal);