使用RestKit 0.20.x下载二进制文件

时间:2013-08-25 13:18:52

标签: ios download restkit-0.20

我已经看到iOS平台版本0.20.x中的RestKit框架发生了很多重大变化。 到目前为止我在网上找不到的一件事是如何使用新版本的RestKit下载二进制文件。

我需要将一个JSON对象发送到REST服务并期望返回一个二进制文件。看起来很简单,不是吗但是由于某些原因,RestKit只期望JSON(以及常见的互联网内容类型,如XML)回来。 JSON对象本质上是一个请求对象,告诉服务它应该去哪个图像。

1 个答案:

答案 0 :(得分: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];