我正在尝试从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”
我收到此错误:命中错误:错误Domain = org.restkit.RestKit.ErrorDomain Code = -1017“加载了内容类型为'application / json'的无法处理的响应(200)”
设置为能够从Web服务读取此字符串的正确RKObjectMapping是什么?
谢谢
答案 0 :(得分:0)
当您使用postObject
时,RestKit会尝试将响应数据应用于源对象(您的LoginRequest
)。因此,您需要为要存储的数据添加某个位置,并使用(响应)映射和描述符来处理它。
另外,如果返回给你的字符串是:
"47c4e389-be2b-466b-b015-c8d5682c4f0a"
这不是JSON,你会在尝试处理它时遇到问题。