我正在使用 Restkit 与 Drupal CMS 进行通信。当我发送 首先请求一切正常:我得到正确的 JSON- 字符串 -> 太棒了。控制台是这样说的:
2011-06-24 23:00:48.344 MyApp[1399:207] Sending POST request to URL http://mysite.com/myproject/services/rest/service_views/get.json. HTTP Body: view_name=viewsname
如果应用程序尝试再次发送相同的请求,则不会发生任何事情。没有任何 委托(delegate)方法被调用。控制台说:
2011-06-24 23:03:40.224 MyApp[1399:207] Sending GET request to URL http://www.mysite.com/myproject/services/rest/service_views/get.json. HTTP Body:
我在一个特殊类(单例)中做所有 Restkit 的事情,它 我保留为我的 View Controller 的实例变量。在这个的初始化函数中 我正在做的课:
RKObjectManager* objectManager = [RKObjectManager
objectManagerWithBaseURL:kBaseURLKey];
在我的 View Controller 中,我正在调用一个 - (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];
有人能帮帮我吗?我必须在第一次之后做一些特别的事情吗? 回应来了?是否可以取消请求(如果保留当前 View )?
最佳答案
当前的 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];
希望对您有所帮助。
关于iphone - Restkit Objective-C : Post request only works once,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6483689/