2

iOS プラットフォームのバージョン 0.20.x で、RestKit フレームワークに多くの大きな変更が加えられました。これまで Web で見つけられなかったものの 1 つは、RestKit の新しいバージョンでバイナリ ファイルをダウンロードする方法の例です。

JSON オブジェクトを REST サービスに送信し、バイナリ ファイルが返されることを期待する必要があります。単純に思えるかもしれませんが、何らかの理由で RestKit は JSON (および XML などの一般的なインターネット コンテンツ タイプ) のみが返されることを期待しています。JSON オブジェクトは基本的に、どの画像を取得する必要があるかをサービスに伝えるリクエスト オブジェクトです。

4

1 に答える 1

7

幸いなことに、基礎となる AFNNetworking フレームワークを使用してこれを支援し、RestKit シリアライザーを利用して必要な要求オブジェクトを生成することができました。

MyRequestClass *request = // ... get my request class instance
RKObjectManager *manager = [RKObjectManager sharedManager];
NSMutableURLRequest *downloadRequest = [manager requestWithObject:request method:RKRequestMethodPOST path:ROUTE_URL_MY_SERVICE parameters:nil];
AFHTTPRequestOperation *requestOperation = [[AFImageRequestOperation alloc] initWithRequest:downloadRequest];

[requestOperation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
    // Use my success callback with the binary data and MIME type string
    callback(operation.responseData, operation.response.MIMEType, nil);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    // Error callback
    callback(nil, nil, error);
}];
[manager.HTTPClient enqueueHTTPRequestOperation:requestOperation];
于 2013-08-25T13:18:51.567 に答える