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

Chr*_*zor 5 iphone drupal objective-c ios restkit

我正在使用Restkit与Drupal CMS进行通信.当我发送第一个请求时,一切正常:我得到了正确的JSON字符串 - >太棒了.这就是控制台所说的:

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]向网址发送GET请求 http://www.mysite.com/myproject/services/rest/service_views/get.json.HTTP正文:

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

RKObjectManager* objectManager = [RKObjectManager
objectManagerWithBaseURL:kBaseURLKey];
Run Code Online (Sandbox Code Playgroud)

在我的视图控制器中,我正在调用一个- (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];
Run Code Online (Sandbox Code Playgroud)

有谁能够帮我?第一次回复后,我是否需要做一些特别的事情?是否可以取消请求(如果保留当前视图)?

Gur*_*ngh 6

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

你可以使用这样的东西:

// 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];
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你.