2015-09-08 41 views
0

這是我的JSON:linkRestkit眼福響應描述

這是我的映射:

-(RKObjectManager *)mapContact{ 
    RKObjectMapping* dataMapping = [RKObjectMapping mappingForClass:[Data class]]; 
    [dataMapping addAttributeMappingsFromDictionary:@{ 
                 @"Data": @"app_data", 
                 @"message": @"app_message", 
                 @"status":@"app_status", 
                 @"Success": @"app_success" 
                 }]; 

    RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:dataMapping method:RKRequestMethodGET pathPattern:nil keyPath:@"" statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)]; 

    RKEntityMapping* contactMapping = [RKEntityMapping mappingForEntityForName:@"Contact" inManagedObjectStore:managedObjectStore]; 
    contactMapping.identificationAttributes = @[@"con_id"]; 
    [contactMapping addAttributeMappingsFromDictionary:@{ 
                   @"content": @"con_content", 
                   @"id"  : @"con_id", 
                   @"title" : @"con_title", 
                   @"language":@"con_language", 
                   }]; 

    RKResponseDescriptor *responseDescriptor2 = [RKResponseDescriptor responseDescriptorWithMapping:contactMapping 
                          method:RKRequestMethodGET 
                         pathPattern:nil 
                          keyPath:@"data.contentblock" 
                         statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)]; 

    NSArray *arrResponsDescriptor = [[NSArray alloc]initWithObjects:responseDescriptor,responseDescriptor2,nil]; 

    [objectManager addResponseDescriptorsFromArray:arrResponsDescriptor]; 
    return objectManager; 

} 

這是我的Web服務調用:

-(void)fetchContactOnCompletion:(myCompletion) compblock{ 
    Mapper *mapper = [Mapper new]; 
    RKManagedObjectStore *store = [[ASLDataModel sharedDataModel] objectStore]; 
    NSManagedObjectContext *context = store.mainQueueManagedObjectContext; 
    RKObjectManager *objectManager = [mapper mapContact]; 


    NSString *urlString = [NSString stringWithFormat:@"webservice/content/get/apikey/%@/language/%@/contentid/2",apikey,language]; 

    NSURLRequest *request = [objectManager requestWithObject:nil method:RKRequestMethodGET path:urlString parameters:nil]; 



    RKManagedObjectRequestOperation *operation = [objectManager managedObjectRequestOperationWithRequest:request managedObjectContext:context success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) { 
     Data *data = [mappingResult.dictionary valueForKey:@""]; 
     if([data.app_status isEqualToNumber:@200]){ 
      NSError *error = nil; 
      BOOL success = [context save:&error]; 
      if (!success) RKLogWarning(@"Failed saving managed object context: %@", error); 
      NSError *saveError = nil; 
      compblock(YES); 
     }else{ 
      compblock(NO); 
     } 
    } failure:^(RKObjectRequestOperation *operation, NSError *error) { 

    }]; 
    [objectManager enqueueObjectRequestOperation:operation]; 
} 

而且我得到這些錯誤:

2015-09-08 08:38:56.431 ASLTravel[17377:427756] D restkit.object_mapping:RKMapperOperation.m:433 Finished performing object mapping. Results: (null) 
2015-09-08 08:38:56.432 ASLTravel[17377:427753] E restkit.network:RKObjectRequestOperation.m:209 GET 'http://asl-travel.be/webservice/content/get/apikey/asl001/language/nl/contentid/2' (200 OK/0 objects) [request=1.6674s mapping=0.0000s total=1.6899s]: 
error=Error Domain=org.restkit.RestKit.ErrorDomain Code=1001 "No response descriptors match the response loaded." UserInfo=0x7f9413f8b730 {NSLocalizedFailureReason=A 200 response was loaded from the URL 'http://www.asl-travel.be/webservice/content/get/apikey/asl001/language/nl/contentid/2', which failed to match all (2) response descriptors: 
    <RKResponseDescriptor: 0x7f9413f535e0 baseURL=http://asl-travel.be/ pathPattern=(null) statusCodes=200-299> failed to match: response URL 'http://www.asl-travel.be/webservice/content/get/apikey/asl001/language/nl/contentid/2' is not relative to the baseURL 'http://asl-travel.be/'. 
    <RKResponseDescriptor: 0x7f9413f2b1e0 baseURL=http://asl-travel.be/ pathPattern=(null) statusCodes=200-299> failed to match: response URL 'http://www.asl-travel.be/webservice/content/get/apikey/asl001/language/nl/contentid/2' is not relative to the baseURL 'http://asl-travel.be/'., NSErrorFailingURLStringKey=http://www.asl-travel.be/webservice/content/get/apikey/asl001/language/nl/contentid/2, NSErrorFailingURLKey=http://www.asl-travel.be/webservice/content/get/apikey/asl001/language/nl/contentid/2, NSUnderlyingError=0x7f9413c2fc20 "No mappable object representations were found at the key paths searched.", keyPath=null, NSLocalizedDescription=No response descriptors match the response loaded.} 

任何人都可以幫助我嗎?我正在尋找這個問題現在幾個小時...

非常感謝!

回答

0

Web服務將您重定向到,因此模式匹配器將永遠不會找到匹配項。更新基本URL或關閉重定向以解決此問題。

+0

我應該如何更改基準網址。因爲我已經嘗試過或沒有正斜槓? – Steaphann

+0

您目前沒有www部件 – Wain