我正在使用Restkit 0.20来完成我的项目。我提出这样的请求。
NSData *postData = [params dataUsingEncoding:NSUTF8StringEncoding];
NSURL *url = [NSURL URLWithString:baseUrl];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:path relativeToURL:url]];
[request setHTTPMethod:@"POST"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];
RKObjectManager *manager = [[RestKit sharedDataManager] objectManager];
RKManagedObjectRequestOperation *operation = [manager managedObjectRequestOperationWithRequest:request managedObjectContext:manager.managedObjectStore.persistentStoreManagedObjectContext success:^(RKObjectRequestOperation *operation1, RKMappingResult *mappingResult) {
block ([mappingResult array]);
} failure:^(RKObjectRequestOperation *operation1, NSError *error) {
RKLogDebug(@"Failure %@",error.debugDescription);
block (error);
}];
竞争映射操作后,我使用块返回一个数组。我需要在委托中获得响应以用于某些操作。是否有类似于Restkit0.10中的didReceiveResponse的方法,我也知道这个线程https://groups.google.com/forum/#!topic/restkit/TrWH5GR-gFU,其中blake提到我们可以通过NSURLRequest对象完全控制头。但是当我使用RKManagedObjectRequestOperation时,如何使用NSURLRequest。任何人都可以发布一些例子。
由于
答案 0 :(得分:1)
如果你只需要response.statuscode,你就可以得到它。 在restkit成功块中我们有两个参数(RKObjectRequestOperation * operation,RKMappingResult * result)
要获得回复,您可以使用此功能。
operation.HTTPRequestOperation.response.statusCode
答案 1 :(得分:0)
您已经有了一个请求:NSMutableURLRequest
(这是NSURLRequest
的可变子类),因此可以在那里设置任何必需的标头。
当调用success
回调时,它包含RKObjectRequestOperation
,您可以请求HTTPRequestOperation
(RKHTTPRequestOperation
的实例),您可以从中请求response
NSHTTPURLResponse
(RKManagedObjectRequestOperation
)的一个实例。
根据您更新的说明,您需要继承performMappingOnResponse:
并覆盖super
,以便在致电{{1}}之前插入其他处理。