RestKit: RKObjectManager's postObject:mapResponseWith:delegate



我想作为json 作为对象发送

HTTP Headers: {
    "Content-Length" = 24;
    "Content-Type" = "application/json";
}
HTTP Body: {"userId":"5","mode":""}.

并取回一个json

HTTP Headers: {
    "Content-Type" = "application/json";
}
HTTP Body: {"insertCount":4,"offerCount":0,"favoriteOfferCount":0,"favoriteInsertCount":0}

并将其映射到一个对象,有人能指导我吗?因为我遇到了很多涉及路由器、对象加载器等的错误

我知道我必须使用RKObjectManager的postObject:mapResponseWith:delegate:

但是配置它是令人困惑的。

别管我是怎么做到的

@interface RestKitUtil :  NSObject <RKObjectLoaderDelegate,RKRequestDelegate>
-(void)postobj;
@end

@implementation RestKitUtil
-(void)postobj{
    RKLogConfigureByName("RestKit/Network", RKLogLevelTrace);
   [RKObjectManager objectManagerWithBaseURL:@"http://10.6.10.121:80/CW_war"];
    RKObjectMapping* mapping = [RKObjectMapping mappingForClass:[CountResultVO class]];
    [mapping mapKeyPathsToAttributes:
     @"offercount", @"offercount",
     @"insertCount", @"insertCount",
     @"favouriteOfferCount", @"favouriteOfferCount",
     @"favouriteInsertCount", @"favouriteInsertCount",
     nil];

   RKObjectRouter *router = [RKObjectManager sharedManager].router;
    [router routeClass:[BasicUserArgVo class] toResourcePath:@"/getMyOffersCount" forMethod:RKRequestMethodPOST];
    [RKObjectManager sharedManager].objectStore = [RKManagedObjectStore objectStoreWithStoreFilename:@"objStore.sqlite"];
    RKObjectMapping *listMapping = [RKObjectMapping mappingForClass:[BasicUserArgVo class]];    
    [listMapping mapKeyPath:@"userId" toAttribute:@"userId"];
    [listMapping mapKeyPath:@"mode" toAttribute:@"mode"];
    [[RKObjectManager sharedManager].mappingProvider addObjectMapping:listMapping ];
    [[RKObjectManager sharedManager].mappingProvider setSerializationMapping:[listMapping inverseMapping] forClass:[BasicUserArgVo class]];
    [[RKObjectManager sharedManager] setSerializationMIMEType:RKMIMETypeJSON];
    //NSUTF8StringEncoding
    [[RKObjectManager sharedManager] setAcceptMIMEType:RKMIMETypeJSON];

    BasicUserArgVo *bvo = [[BasicUserArgVo alloc] initWithUserId:5];
    [[RKObjectManager sharedManager] postObject:bvo mapResponseWith:mapping delegate:self]; 
}

- (void)objectLoader:(RKObjectLoader*)objectLoader didLoadObjects:(NSArray*)objects {
    CountResultVO* cvo = [objects objectAtIndex:0];
    NSLog(@"values:%ld,%ld,%ld,%ld",[cvo offercount],[cvo insertCount],
          [cvo favouriteOfferCount],[cvo favouriteInsertCount] );
}
- (void)objectLoader:(RKObjectLoader *)objectLoader didFailWithError:(NSError *)error {
    NSString *msg = [NSString stringWithFormat:@"Error: %@", [error localizedDescription]];
    NSLog(@"log : %@",msg);    
}
@end

最新更新