2

我在 iOS 平台的 0.20.x 版本中看到了 RestKit 框架的许多重大变化。到目前为止我在网上还没有找到的一件事是如何使用新版本的 RestKit 下载二进制文件的示例。

我需要将 JSON 对象发送到 REST 服务并期望得到一个二进制文件作为回报。看起来很简单,不是吗,但出于某种原因,RestKit 只希望 JSON(以及常见的 Internet 内容类型,如 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 回答