0

今、私は PHP を介して MySQL に jpeg ファイルを POST し、MySQL から iOS に GET しようとしています。

GET メソッドでは、json_encode() を使用して、jpeg (NSData として) といくつかの関連データ (キャプション、タイムスタンプなど) を PHP スクリプトで JSON にエンコードします。

    {"caption":"(captiondata)","img":"(imagedata)","timestamp":"(timestampdata)"}

次に、データを次のように配列に設定します。

    [{"caption":"(captiondata)","img":"(imagedata)","timestamp":"(timestampdata)"},
     {"caption":"(captiondata)","img":"(imagedata)","timestamp":"(timestampdata)"},
     .......,
     {"caption":"(captiondata)","img":"(imagedata)","timestamp":"(timestampdata)"}]

PHP では echo (json_encode ()) で、iOS では SBJsonParser でこの JSON を解析して取得できると思いますが、アプリには何も返されません。iOS でのコードは次のとおりです (Three20 の TTURLRequest も使用します)。

    TTURLRequest* request = [TTURLRequest requestWithURL:url delegate:self];
    request.cachePolicy = cachePolicy;
    TTURLJSONResponse* response = [[[TTURLJSONResponse alloc] init] autorelease];
    request.response = response;
    [request send];

    - (void)requestDidFinishLoad:(TTURLRequest*)request {
        TTURLJSONResponse* response = request.response;
        NSLog(@"%@",response);
    }
4

1 に答える 1

0

すべてのログを印刷できますrequestDidFinishLoad:か?

応答はのrootObjectですTTURLJSONResponse

- (void)requestDidFinishLoad:(TTURLRequest*)request {

    TTURLJSONResponse *response = request.response;
    NSDictionary *dict = response.rootObject;
    NSLog(@"dict : %@",dict);

}

あなたの場合、

- (void)requestDidFinishLoad:(TTURLRequest*)request {
    TTURLJSONResponse* response = request.response;
    NSLog(@"%@",response);
}

応答は次のようになります<TTURLJSONResponse: 0x125398c0>

それでも何も返されない場合requestDidFinishLoad:は、キャッシュの問題ではなく、が呼び出されていることを確認できます。

于 2012-06-05T10:32:27.737 に答える