2011-03-07 26 views
0

私のコードに問題があり、何が間違っているのかわかりません。おそらく、私はこれらの話題の初心者なので、私が気づいていない本当にばかげたことをしているのかもしれません。基本的には、NSURLConnectionを介してWebサーバー上のPHPページからの応答としてJSONオブジェクトを取得しようとしています。 PHPページはDBからいくつかの情報を取得し、JSONオブジェクトをエンコードします。これは単純に["1"、 "2"、 "3"、 "4"などの4つの数値ストリングの配列です。 PHPページの関連部分は次のとおりです。NSURLConnection経由でPHPページからJSONオブジェクトを取得する際に問題が発生しました

<?php 
include('mylib.php'); 
$id = $_GET["id"]; 
$db = connection(); 
$stmt = "SELECT col1,col2,col3,col4 FROM mytable WHERE `id` = " .$id; 
$ris = mysql_query($stmt,$db); 
if ($ris && mysql_num_rows($ris) == 1) { 
    $arr = mysql_fetch_array($ris); 
    header('Content-type: application/json'); 
    header("Content-Disposition: attachment; filename=res.json"); 
    $json = json_encode(array($arr[0],$arr[1],$arr[2],$arr[3])); 
    echo $json; 
?>  

私は、ブラウザからファイルをダウンロードするとき、私は私が私が望む形式で期待するデータを取得していますが、JSONの添付ファイルが不要な新しい行で始まります文字:このように、NSURLConnectionはすぐに停止して表示されます(私はちょうど '\ n'を取得します)。私は、ネットワーク部分のコードを報告していないよ。それは非常に標準だと、それは私が他のもののために働くので、それは、正しいはずです...私はを通じて「N \」削除しようとした:

$json = trim($json); 

が、それはうまくいきませんでした。新しい行はまだそこにあります。それはどこから来たのですか?私は何をすべきか?あなたが私にこの問題を解決するのを助けてくれることを願って...あらかじめありがとう!

EDIT

OK!私はもう新しい行のcharを持っていません(mylib.phpの最初に\ nを削除しました)が、まだNSURLConnection経由でJSONオブジェクトを取得できません。それは方法と思われる

connection:didReceiveData: 

今すぐ呼び出されることはありません。しかし、私は接続にエラーがありません:それは単に0バイトを受信します。私が最初に '\ n'を持っていたとき、私は1バイトを受け取ったことに注意してください。ブラウザからは完全に動作します。私は何をすべきか?

答えて

1

わかりやすく聞こえるかもしれませんが、オープニングの<?phpタグの前に目を通してみてください。

編集:または「mylib.php」の末尾にある可能性があります。

+0

あなたは正しいです!この問題は、mylib.phpの初めにありました。すばやく正確です!どうもありがとう ;) –

関連する問題