1)由于我是编程的初学者,我无法真正调试问题是什么;如果问题是解析我应该怎么做与restkit? 2)我花了2天的时间搜索某个方向,这可以帮助我通过拨打电话来通过服务器注册用户。请忽略任何明显的错误,因为你可能刚刚开始编程一次。
////这是我的代码:
-(void)makePostCallToServer
{
NSURL *baseeURL = [NSURL URLWithString:baseURL];
AFHTTPClient *client = [[AFHTTPClient alloc] initWithBaseURL:baseeURL];
// initialize RestKit
objectManager = [[RKObjectManager alloc] initWithHTTPClient:client];
// SEEKER MAPPING
RKObjectMapping *seekerMapping = [RKObjectMapping mappingForClass:[SeekerData class]];
[seekerMapping addAttributeMappingsFromDictionary:@{
@"status": @"status"}];
// USER MAPPING . OBJECT IS INSIDE SEEKER
RKObjectMapping *userMapping = [RKObjectMapping mappingForClass:[UserData class]];
[seekerMapping addAttributeMappingsFromArray:@[@"userName", @"password", @"userType", @"emailId", @"mobileNumber", @"firstName",@"lastName",@"profilePicUrl",@"Location"]];
// DEFINING THE RELATIONSHIP MAPPING
[seekerMapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"userData"
toKeyPath:@"data"
withMapping:userMapping]];
RKResponseDescriptor *responseDescriptor =
[RKResponseDescriptor responseDescriptorWithMapping:seekerMapping
method:RKRequestMethodAny
pathPattern:@"api/Seekers" // switch with nil and check
keyPath:@"Seekers"
statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];
////////////////// response descriptor
[objectManager addResponseDescriptor:responseDescriptor];
// added afterwards
[RKMIMETypeSerialization registerClass:[RKNSJSONSerialization class] forMIMEType:@"text/html"];
[objectManager setAcceptHeaderWithMIMEType:@"text/html"];
//// request mapping
RKObjectMapping *requestMapping = [RKObjectMapping requestMapping];
[requestMapping addAttributeMappingsFromArray:@[@"status", @"userData"]];
RKRequestDescriptor *requestDescriptor =
[RKRequestDescriptor requestDescriptorWithMapping:requestMapping objectClass:[SeekerData class] rootKeyPath:nil method:RKRequestMethodPOST];
[objectManager addRequestDescriptor:requestDescriptor];
RKObjectRequestOperation *operation = [objectManager appropriateObjectRequestOperationWithObject:user1
method:RKRequestMethodPOST
path:@"api/Seekers"
parameters:nil];
operation.targetObject = nil;
[operation setCompletionBlockWithSuccess:^(RKObjectRequestOperation * operation, RKMappingResult * mappingResult)
{
SeekerData * logInUser = [SeekerData new];
logInUser = mappingResult.firstObject;
// if([logInUser.VolunteerID isEqualToString:Nil])
// {
// NSLog(@"Not Registered");
// }
}
failure:^(RKObjectRequestOperation *operation, NSError * error) {
RKLogError(@"Operation failed with eeeerrrrror: %@", error);
}];
[operation start];
}
答案 0 :(得分:0)
看起来你的主要问题是你没有将默认请求mime类型设置为JSON。默认为表单网址编码,您可以看到您在请求中获得的内容。您需要删除已添加的html响应类型,以尝试处理当前情况。