RKResponseMapperOperation.m:363无法解析响应数据:加载内容类型为“text / html”的无法处理的响应(200)

时间:2015-12-18 09:41:21

标签: ios objective-c restkit

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



      }

1 个答案:

答案 0 :(得分:0)

看起来你的主要问题是你没有将默认请求mime类型设置为JSON。默认为表单网址编码,您可以看到您在请求中获得的内容。您需要删除已添加的html响应类型,以尝试处理当前情况。