2017-08-02 4 views
0

J'ai un formulaire pour l'utilisateur. Après l'avoir rempli, l'utilisateur clique sur le bouton Soumettre et ses données sont envoyées au serveur. Je rencontre un problème de réponse nulle mais mes données du formulaire sont correctement envoyées au serveur. Je ne sais pas d'où vient le problème. Je veux exécuter une autre fonction si la réponse se réalise. Mon code est le suivant:Problèmes de méthode POST dans IOS

NSURLSessionConfiguration *defaultConfigObject = [NSURLSessionConfiguration defaultSessionConfiguration]; 
    NSURLSession *defaultSession = [NSURLSession sessionWithConfiguration: defaultConfigObject delegate: nil delegateQueue: [NSOperationQueue mainQueue]]; 

    NSString *[email protected]"My URL"; 


    NSURL * url = [NSURL URLWithString:urlLinkA]; 

    NSMutableURLRequest * urlRequest = [NSMutableURLRequest requestWithURL:url]; 

    NSString *parameters = [NSString stringWithFormat:@"%@",Parameter]; 


    NSLog(@"parameter %@",parameters); 
    [urlRequest setHTTPMethod:@"POST"]; 

    [urlRequest setHTTPBody:[parameters dataUsingEncoding:NSUTF8StringEncoding]]; 

    NSURLSessionDataTask * dataTask =[defaultSession dataTaskWithRequest:urlRequest 
                 completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { 
                  [_indicator stopAnimating]; 
                  _indicator.hidden=YES; 
                  NSLog(@"Response:%@ %@\n", response, error); 

                  NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:&error]; 

                  NSLog(@"DDD %@",dictionary); 

                  NSString *userid = [dictionary valueForKey:@"property_id"]; 
                  NSLog(@"UserID: %@", userid); 



                  NSLog(@"Response: %@", dictionary); 

                  if ([dictionary isEqual:@""]) { 
                   [self Images]; 
                  } 

                  HomePageViewController *presales = [self.storyboard instantiateViewControllerWithIdentifier:@"HomeViewController"]; 
                  [self.navigationController pushViewController:presales animated:YES]; 

                  NSString *[email protected]"Successfully Registered"; 

                  UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"Success" 
                                  message:msg 
                                preferredStyle:UIAlertControllerStyleAlert]; 

                  [self presentViewController:alert animated:YES completion:nil]; 

                  int duration = 2; // duration in seconds 

                  dispatch_after(dispatch_time(DISPATCH_TIME_NOW, duration * NSEC_PER_SEC), dispatch_get_main_queue(), ^{ 
                   [alert dismissViewControllerAnimated:YES completion:nil]; 
                  }); 

                 }]; 


    NSLog(@"network error :"); 
    [dataTask resume]; 
} 
+1

avez-vous ajouté la sécurité NSTransport dans votre application –

+0

oui. @ Anbu.Karthik –

+0

quel résultat vous obtenez ici 'NSLog (@" Réponse:% @% @ \ n ", réponse, erreur); ' –

Répondre

1

S'il vous plaît essayer avec ou postier RESTClient dans votre navigateur et déboguer votre demande de poste, il pourrait être possible que le serveur ne vous envoie une réponse appropriée. vous pouvez le télécharger à partir de https://restlet.com ici.