5

Drupal CMS と通信するために Restkit を使用しています。最初のリクエストを送信すると、すべてが正常に機能します。正しい 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 リクエストを URL http://www.mysite.com/myproject/services/rest/service_views/get.jsonに送信しています。HTTP 本文:

私はビューコントローラのインスタンス変数として保持している特別なクラス(シングルトン)ですべてのRestkitのものをやっています。このクラスの init-function で、私はこれをやっています:

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

誰でも私を助けることができますか?最初の応答があった後、何か特別なことをしなければなりませんか? リクエストをキャンセルすることはできますか (現在のビューが残っている場合)?

4

1 に答える 1

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

それが役に立てば幸い。

于 2011-06-27T22:55:45.983 に答える