2015-08-25 2 views
0

Je ne comprends pas pourquoi le bloc d'erreur appelle même si les images sont téléchargées et affichées avec succès. L'erreur que je reçois dans le journal est,Erreur d'URL non prise en charge après un appel réussi

Error = Erreur de domaine = code NSURLErrorDomain = -1002 "URL non pris en charge" UserInfo = {0x7fe7840d8000 NSUnderlyingError = 0x7fe781d5b5e0 "URL non pris en charge", NSErrorFailingURLStringKey =, NSErrorFailingURLKey =, NSLocalizedDescription = URL non pris en charge }

Même si j'obtiens cette erreur, je peux obtenir l'image, l'analyser et l'afficher dans l'application. Où est-ce que je me trompe dans ce code,

@try{ 
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{ 
NSURL *url = [NSURL URLWithString:imageUrl]; 
NSURLRequest *req = [NSURLRequest requestWithURL:url]; 
[NSURLConnection sendAsynchronousRequest:req queue:[[NSOperationQueue alloc] init] completionHandler:^(NSURLResponse *res, NSData *data, NSError *error){ 
UIImage *thumbImage = nil; 
if ([data length] >0 && error == nil){ 
    NSLog(@"image was downloaded."); 
    thumbImage = [UIImage imageWithData:data]; 
} 
else if ([data length] == 0 && error == nil){ 
    NSLog(@"Nothing was downloaded."); 
    [loaderView removeFromSuperview]; 
} 
else if (error != nil){ 
    NSLog(@"Error = %@", error); 
    [loaderView removeFromSuperview]; 
} 
    dispatch_async(dispatch_get_main_queue(), ^{ 
    imageViewtoApply.image = thumbImage; 
    [webServiceDelegate imageDownloadFinished]; 
    [loaderView removeFromSuperview]; 
    }); 
    }]; 
}); 
} 

Répondre

0

Vérifiez le code d'état http, c'est probablement un code d'erreur.

Diffusez la réponse à NSHTTPURLResponse et examinez la propriété statusCode.

NSHTTPURLResponse *URLResponse = (NSHTTPURLResponse *)res; 
NSLog(@"http status code: res.statusCode", %i); 
+0

Le code d'état est '0'. Si c'est 0 comment les images peuvent être téléchargées et affichées? – Sabarish

+0

Vraiment? Voir [Définitions de code d'état] (http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html), 0 n'en fait pas partie. Vous pouvez toujours utiliser [Charles Proxy] (http://www.charlesproxy.com) pour voir la demande et la réponse. – zaph