1

Web サービスから単純な json 文字列応答を読み込もうとしています:

このマッピングがあるとします:

RKObjectMapping* loginRequestMapping = [RKObjectMapping requestMapping];
[loginRequestMapping addAttributeMappingsFromDictionary:@{
 @"userName" : @"UserName",
 @"password" : @"Password"
 }];
RKRequestDescriptor* loginReq = [RKRequestDescriptor requestDescriptorWithMapping:loginRequestMapping objectClass:[LoginRequest class] rootKeyPath:nil method:RKRequestMethodPOST];
[objectManager addRequestDescriptor:loginReq];

私はこのリクエストを試しました:

LoginRequest* loginReq = [LoginRequest new];
loginReq.userName = @"username";
loginReq.password = @"1234567890";

__block NSString* token;
[objectManager postObject:loginReq
                     path:@"/sendboxapi/api/login"
                     parameters:nil
                        success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
                            token = [mappingResult firstObject];
                            NSLog(@"RESULT : %@", token);
                        }
                        failure:^(RKObjectRequestOperation *operation, NSError *error) {
                            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error"
                                                                            message:[error localizedDescription]
                                                                           delegate:nil
                                                                  cancelButtonTitle:@"OK"
                                                                  otherButtonTitles:nil];
                            [alert show];
                            NSLog(@"Hit error: %@", error);
                        }];

生の応答の形式は「47c4e389-be2b-466b-b015-c8d5682c4f0a」です。

次のエラーが表示されます: Hit error: Error Domain=org.restkit.RestKit.ErrorDomain Code=-1017 "Loaded an unprocessable response (200) with content type 'application/json'"

Web サービスからこの文字列を読み取れるように設定する正しい RKObjectMapping は何ですか?

ありがとうございました

4

1 に答える 1

0

を使用するpostObjectと、RestKit は応答データをソース オブジェクト (あなたのLoginRequest) に適用しようとします。したがって、そのデータを保存する場所と、それを処理するための (応答) マッピングと記述子を追加する必要があります。

また、返された文字列が次の場合:

"47c4e389-be2b-466b-b015-c8d5682c4f0a"

これは JSON ではないため、JSON として処理しようとすると問題が発生します。

于 2013-07-24T15:12:36.793 に答える