我已经看到iOS平台版本0.20.x中的RestKit框架发生了很多重大变化。 到目前为止我在网上找不到的一件事是如何使用新版本的RestKit下载二进制文件。
我需要将一个JSON对象发送到REST服务并期望返回一个二进制文件。看起来很简单,不是吗但是由于某些原因,RestKit只期望JSON(以及常见的互联网内容类型,如XML)回来。 JSON对象本质上是一个请求对象,告诉服务它应该去哪个图像。
答案 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];