Restkit 0.20中的didReceiveResponse委托方法

时间:2013-09-19 05:21:06

标签: ios request restkit restkit-0.20

我正在使用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。任何人都可以发布一些例子。

由于

2 个答案:

答案 0 :(得分:1)

如果你只需要response.statuscode,你就可以得到它。 在restkit成功块中我们有两个参数(RKObjectRequestOperation * operation,RKMappingResult * result)

要获得回复,您可以使用此功能。

operation.HTTPRequestOperation.response.statusCode

答案 1 :(得分:0)

您已经有了一个请求:NSMutableURLRequest(这是NSURLRequest的可变子类),因此可以在那里设置任何必需的标头。

当调用success回调时,它包含RKObjectRequestOperation,您可以请求HTTPRequestOperationRKHTTPRequestOperation的实例),您可以从中请求response NSHTTPURLResponseRKManagedObjectRequestOperation)的一个实例。


根据您更新的说明,您需要继承performMappingOnResponse:并覆盖super,以便在致电{{1}}之前插入其他处理。