J'essaye de saisir la source d'une page en ligne pour l'analyser et mettre l'information dans le dictionnaire. Tout fonctionne bien, mais les données que je reçois ne sont pas complètes. La moitié des données arrivent seulement.Demande asynchrone ne donnant pas une réponse correcte
J'utilise ci-dessous le code:
-(void)getEmployeeTrips:(void(^)(NSDictionary *))completion
{
NSString *url;
url =[NSString stringWithFormat:@"%@://%@:%@/%@?dbname=%@&colname=%@",[[NSUserDefaults standardUserDefaults] stringForKey:@"mongoScheme"],[[NSUserDefaults standardUserDefaults] stringForKey:@"mongoHost"],[[NSUserDefaults standardUserDefaults] stringForKey:@"mongoPort"],@"query",[[NSUserDefaults standardUserDefaults] stringForKey:@"mongoDbName"],@"trips"];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc]init];
[request setURL:[NSURL URLWithString:url]];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:[NSJSONSerialization dataWithJSONObject:postDictionary options:kNilOptions error:&error]];
[request setValue:finalAuthString forHTTPHeaderField:@"Authorization"];
[NSURLConnection sendAsynchronousRequest:request queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *error){
NSLog(@"%@",[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]);
completion([NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error]);
}];
}
Quand je vous appelle ce bloc d'achèvement sur une autre des données de classe ne vient pas complète.
J'ai essayé avec NSUrlConnection
méthodes de délégué et NSUrlSession
également mais pas résolu mon problème.
Y at-il un problème avec mon code ou du serveur?
Vous pouvez utiliser 'NSURLSessionDataTask' au lieu de 'NSURLConnection'. J'ai rencontré le même problème quand j'ai obtenu un fichier html du serveur. –
@ sailendrak.J'ai essayé avec ça mais pas de changement – Himanth
Pouvez-vous poster votre NSMutableURLRequest ??? –