2017-10-11 11 views
2

J'essaie d'appeler le service Web et de télécharger l'image,erreur tandis que le service web d'appel avec l'objectif restkit api c

Il y a un problème dans la cartographie, et je l'ai passé de nombreuses heures sans succès. L'erreur que je reçois est:

Erreur de domaine = code org.restkit.RestKit.ErrorDomain = 1001 « représentations Aucun objet cartographiables ont été trouvées sur les chemins clés recherchés. » . UserInfo = {NSLocalizedDescription = Aucun objet mappable représentations ont été trouvées sur les chemins clés recherchés, NSLocalizedFailureReason = L'opération de cartographie n'a pas pu trouver un objet imbriqué représentations les chemins clés recherchés: utilisateur La représentation entrée au mappeur a été trouvé pour contenir des représentations d'objets imbriquées aux suivantes chemins clés: un message, le succès Cette probable indique que vous avez mal configuré les chemins clés pour vos correspondances, KeyPath = null, DetailedErrors =()}

et là. méthode qui appelle le service Web

[SVProgressHUD show]; 

     [delegate.objectManager.HTTPClient.defaultHeaders setValue:@"application/x-www-form-urlencoded" forKey:@"content-type" ]; 

     RKObjectMapping *responseMapping = [RKObjectMapping mappingForClass:[SignUpResponse class]]; //create response and request mapping 

     [responseMapping addAttributeMappingsFromDictionary:@{@"phone": @"phone", 
                   @"device_type": @"device_type", 
                   @"device_token": @"device_token", 
                   @"type": @"type", 
                   @"email": @"email", 
                   @"identity": @"identity", 
                   @"date": @"date", 
                   @"status": @"status", 
                   @"name": @"name", 
                   @"activation": @"activation", 
                   @"image": @"image", 
                   @"id": @"id" 
                   }]; 

     RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:responseMapping 
                           method:RKRequestMethodPOST 
                          pathPattern:@"AgentRegister" 
                           keyPath:@"user" 
                          statusCodes:[NSIndexSet indexSetWithIndex:200]]; 

     [delegate.objectManager.defaultHeaders setValue:@"application/x-www-form-urlencoded" forKey:@"content-type" ]; 
     delegate.objectManager.requestSerializationMIMEType =RKMIMETypeFormURLEncoded; 


     [delegate.objectManager removeResponseDescriptor:responseDescriptor]; 

     [delegate.objectManager addResponseDescriptor:responseDescriptor]; 

     NSString *fcmToken = [FIRInstanceID instanceID].token; 

     SignUpRequest *signUpRequest = [[SignUpRequest alloc]init]; 
     signUpRequest.phone = txtPhoneNumber.text; 
     signUpRequest.email = txtEmail.text; 
     signUpRequest.identity=txtIdOrCity.text; 
     [email protected]"IOS"; 
     signUpRequest.device_token=fcmToken; 
     [email protected]"1"; 


     UIImage *image = [UIImage imageNamed:@"Logo"]; 


     // Serialize the Article attributes then attach a file 
     NSMutableURLRequest *request = [[RKObjectManager sharedManager] multipartFormRequestWithObject:signUpRequest method:RKRequestMethodPOST path:@"AgentRegister" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { 
      [formData appendPartWithFileData:UIImagePNGRepresentation(image) 
             name:@"image" 
            fileName:@"photo.png" 
            mimeType:@"application/x-www-form-urlencoded"]; 
     }]; 

     RKObjectRequestOperation *operation = [[RKObjectManager sharedManager] objectRequestOperationWithRequest:request success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult){ 

      [SVProgressHUD dismiss]; 
      if(mappingResult.array.count !=0){ 
       [self performSegueWithIdentifier:@"goToVerify" sender:self]; 
      }else{ 

      } 

      [delegate.objectManager removeResponseDescriptor:responseDescriptor]; 
     }failure:^(RKObjectRequestOperation *operation, NSError *error){ 
      [SVProgressHUD dismiss]; 
      NSLog(@"%@",error.description); 
      UIAlertController *alert = [UIAlertController alertControllerWithTitle:@".." 
                      message:@"حدث خطاء ما .. حاول مرة اخري" preferredStyle:UIAlertControllerStyleAlert]; 

      UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"Ok" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { 

      }]; 
      [alert addAction:okAction]; 
      [self presentViewController:alert animated:YES completion:nil]; 
      [delegate.objectManager removeResponseDescriptor:responseDescriptor]; 

     }]; 
     [[RKObjectManager sharedManager] enqueueObjectRequestOperation:operation]; 

    } 

Répondre

0

Cette erreur vous indique que rien n'était disponible sur le chemin user. Par exemple, si votre réponse est JSON, il n'y aurait pas de clé de racine appelée user, seulement message et success:

{ "user": "<- This key doesnt exist", "message": "<- There is something here", "success": "<- There is also something here" }

Vous avez probablement besoin de changer votre keyPath de user à quelque chose comme success.user.