2012-04-25 52 views
3

如果我使用restkit发出请求,我可以使用共享客户端发送post参数。 我怎样才能做到共享对象管理器一样,似乎没有功能发布数据时请求对象。Restkit,使用loadObjectsAtResourcePath发送post数据

再次重申,我期待发送一些数据后,当我使用loadObjectsAtResourcePath

感谢

+0

正如jverdi指出的,我已经采用的块试过,但一点儿也不块内任何代码似乎被执行 [objManager loadObjectsAtResourcePath:URL代表:自身块:^(RKObjectLoader *装载机){DDLogVerbose( @“从url%@映射对象”,url); loader.objectMapping = postMapping; loader.method = RKRequestMethodPOST; RKParams * params = [RKParams params]; [params setValue:@“iPhone3u48gn39bndkthb34528dgbnjs398shbg34”forParam:@“token”]; loader.params =参数; }]; – Veeru 2012-04-29 14:39:11

回答

3

必须使用loadObjectsAtResourcePath?下面是我使用POST请求发送到我的服务器

RKParams* params = [RKParams params]; 
    [params setValue:@"The text" forParam:@"text"]; 

    RKClient* myClient = [RKClient sharedClient]; 
    [myClient post:resourceURL params:params delegate:self]; 

,你会得到你的反应回来

- (void)request:(RKRequest *)request didLoadResponse:(RKResponse *)response 

PS:刚发现此链接:https://github.com/RestKit/RestKit/wiki/Posting-NSDictionary-as-JSON

+0

我必须使用loadOBjectsResourcePath,因为我做了一些json映射,我不确定是否可以在不使用loadObjectsAtResourcePath的情况下完成json映射。感谢您指出,但我已经成功发布数据,只是我不知道如何使用loadObjectsAtResourcePath – Veeru 2012-04-27 03:42:13

+0

我没有尝试过,但用我的方法,你会得到你的“ - (void)请求: (RKRequest *)请求didLoadResponse:(RKResponse *)response“调用并从那里你应该能够调用[response parsedBody]文档说:”返回解析为JSON的响应体到一个对象中“值得一试。 。 – 2012-04-27 09:03:12

+0

RKClient * myClient = [RKClient sharedClient]; [myClient post:resourceURL params:params delegate:self]; - 不会像loadObjectsAtResourcePath那样很好地解析和返回对象 – ugiflezet 2012-06-09 19:09:22

1

可以使用块风格对象加载器来定制请求:

[[RKObjectManager sharedManager] loadObjectsAtResourcePath:@"/monkeys.json" usingBlock:^(RKObjectLoader* loader) { 
    loader.objectMapping = [[RKObjectManager sharedManager].mappingProvider objectMappingForClass:[Monkey class]]; 
    loader.method = RKRequestMethodPOST; 
}]; 

https://github.com/RestKit/RestKit/blob/master/Code/ObjectMapping/RKObjectManager.h#L374

+0

感谢信息jverdi,但由于某种原因,我不能使用该方法。它不断抛出错误,我甚至更新了我的RestKit,因为它看起来像是最近添加的。任何帮助? – Veeru 2012-04-29 07:03:54

+0

[objManager loadObjectsAtResourcePath:url委托:self block:^(RKObjectLoader * loader){DDLKVerbose(@“从url%映射对象%@”,url); loader.objectMapping = postMapping; loader.method = RKRequestMethodPOST; RKParams * params = [RKParams params]; [params setValue:@“iPhone3u48gn39bndkthb34528dgbnjs398shbg34”forParam:@“token”]; loader.params = params; }]; 上面的代码不起作用,块内部的代码似乎没有被执行。 – Veeru 2012-04-29 14:19:24

+0

如何取消此请求? http://stackoverflow.com/questions/11499281/using-restkit-use-block-to-load-object-when-and-how-to-cancel-the-request – jeswang 2012-07-16 06:49:51