2011-06-26 18 views
5

Tôi đang sử dụng Restkit để liên lạc với Drupal CMS. Khi tôi gửi yêu cầu đầu tiên, mọi thứ hoạt động tốt: Tôi đang nhận đúng JSON- chuỗi -> tuyệt vời. Đây là những gì giao diện điều khiển nói:Mục tiêu Restkit-C: Yêu cầu đăng chỉ hoạt động sau khi

2011-06-24 23: 00: 48,344 MyApp [1399: 207] Đang gửi yêu cầu POST để URL http://mysite.com/myproject/services/rest/service_views/get.json. HTTP Nội dung: view_name = viewsname

Nếu ứng dụng cố gắng gửi lại yêu cầu đó, không có gì xảy ra. Không có của các phương thức đại biểu được gọi. Bảng điều khiển cho biết:

2011-06-24 23: 03: 40.224 MyApp [1399: 207] Gửi yêu cầu GET đến URL http://www.mysite.com/myproject/services/rest/service_views/get.json. HTTP Body:

tôi đang làm tất cả những thứ Restkit trong một lớp học đặc biệt (singleton), mà tôi giữ như là một biến thể hiện của view-controller của tôi. Trong init chức năng của lớp này tôi đang làm điều này:

RKObjectManager* objectManager = [RKObjectManager 
objectManagerWithBaseURL:kBaseURLKey]; 

Trong tôi view-controller Tôi gọi một hàm - (void)pollForNewData, mà làm như sau:

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

Can ai giúp đỡ tôi? Tôi có phải làm điều gì đó đặc biệt sau câu trả lời đầu tiên của không? Có thể hủy yêu cầu (nếu chế độ xem hiện tại bị bỏ lại) không?

Trả lời

6

Nguồn RestKit hiện tại (~ 0.9.2 +) dường như không có phương thức loadObjectsAtResourcePath: objectClass: delegate:.

Bạn có thể sử dụng một cái gì đó như thế này:

// 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]; 

Hy vọng nó giúp.

+0

Tôi đã tìm kiếm điều này cả ngày! Cảm ơn! Một điều, 'objectMappingForKeyPath:' bị phản đối trong 0.9.3, sử dụng 'mappingForKeyPath:' thay vào đó :) – Hlung

Các vấn đề liên quan