Restkit Objective-C:发布请求仅适用一次

时间:2011-06-26 11:45:23

标签: iphone objective-c ios drupal restkit

我正在使用Restkit与Drupal CMS进行通信。当我发送时 首先要求一切正常:我得到了正确的JSON- string - >真棒。这就是控制台所说的:

  

2011-06-24 23:00:48.344 MyApp [1399:207]将POST请求发送到URL   http://mysite.com/myproject/services/rest/service_views/get.json。 HTTP   正文:view_name = viewsname

如果应用尝试再次发送相同的请求,则不会发生任何事情。没有 委托方法的调用。控制台说:

  

2011-06-24 23:03:40.224 MyApp [1399:207]向URL发送GET请求   http://www.mysite.com/myproject/services/rest/service_views/get.json。   HTTP正文:

我正在使用特殊类(单例)中的所有Restkit内容 我保留作为视图控制器的实例变量。在这个init函数中 我正在上课:

RKObjectManager* objectManager = [RKObjectManager
objectManagerWithBaseURL:kBaseURLKey];

在我的视图控制器中,我正在调用- (void)pollForNewData函数, 它执行以下操作:

RKObjectLoader* objectLoader = [[RKObjectManager sharedManager] loadObjectsAtResourcePath: kRessourceKey objectClass:[RKNotification class] delegate:self]; 
objectLoader.method = RKRequestMethodPOST;
objectLoader.params = [NSDictionary dictionaryWithKeysAndObjects: @"view_name", @"viewsname", nil];
[objectLoader send];

任何人都可以帮助我吗?在第一次之后我是否必须做一些特别的事情 回应来了吗?是否可以取消请求(如果保留当前视图)?

1 个答案:

答案 0 :(得分:6)

当前的RestKit源代码(~0.9.2 +)似乎没有loadObjectsAtResourcePath:objectClass:delegate:method。

您可以使用以下内容:

// It's for logging in Drupal's user resource with RestKit.
// You can change the user bits to your need.

RKObjectManager *objectManager = [RKObjectManager sharedManager];
RKObjectMapping *currentUserMapping = [objectManager.mappingProvider objectMappingForKeyPath:@"currentUser"];

RKObjectLoader *objectLoader = [objectManager objectLoaderWithResourcePath:@"user/login" delegate:self];
objectLoader.method = RKRequestMethodPOST;
objectLoader.objectMapping = currentUserMapping;
objectLoader.params = [NSDictionary dictionaryWithObjectsAndKeys:
                       @"testuser", @"username",
                       @"testpass", @"password",
                       nil];
[objectLoader send];

希望它有所帮助。