2011-10-18 2 views
2

Lorsque j'ouvre l'application à partir de l'arrière-plan, je dois cliquer sur le serveur pour obtenir des données. Quand je le fais, je reçois une alerte comme suit:Erreur de délai pour NSUrlRequest

« Request timed out » (NSError sa description localisée)

Je suis sur le wifi et mon internet ainsi que mon serveur sont bien.

Cela ne se produit chaque fois, mais passe souvent. Voici mon code:

NSURLRequest *request=[NSURLRequest requestWithURL:[NSURL URLWithString:myUrlString]];  
NSURLConnection *conn=[[NSURLConnection alloc]initWithRequest:request delegate:self]; //sending request for data self.dataConnection=conn; [conn release]; 


-(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error { 

UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"Error" message:@"Network Exception" delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil]; 
[alert show]; 
[alert release]; 
} 

Qu'est-ce que je fais mal et comment puis-je résoudre ce problème?


NSURLRequest *lRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:link] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:20.0]; 

même que j'ai utilisé la ligne ci-dessus au lieu de

NSURLRequest *request=[NSURLRequest requestWithURL:[NSURL URLWithString:myUrlString]]; 

mais rien trouvé différent. Ma demande est toujours expirée. Pourquoi est-il expiré même quand mon serveur ainsi que le wifi (internet) vont bien. Merci à l'avance ....

+0

une URL que nous pouvons tester? Désactiver le pare-feu et tester à nouveau? – Raptor

+0

Voir la réponse sur le lien ci-dessous http://stackoverflow.com/questions/6609813/error-using-nsurlconnection – Minakshi

+0

Le même problème. L'augmentation de l'intervalle de temporisation n'aide pas. Cela n'arrive pas à chaque fois, mais assez souvent. Juste pour le plaisir de l'expérience, je tiens deux appareils, tous deux connectés au même wifi. J'essaie d'ouvrir la même URL dans Safari. Un périphérique reçoit une demande et l'autre obtient une 'échec de connexion' à chaque fois. Je sais que cela semble étrange. – berec

Répondre

1
NSURLRequest *lRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:link] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:20.0]; 

De là, vous pouvez obtenir les conseils ... NSURLConnection timeout?

+1

NSURLRequest * lRequest = [NSURLRequest requestWithURL: [NSURL URLWithString: link] cachePolicy: NSURLRequestUseProtocolCachePolicy timeoutInterval: 20.0]; même j'ai utilisé la ligne ci-dessus au lieu de NSURLRequest * request = [NSURLRequest requestWithURL: [NSURL URLWithString: myUrlString]]; mais n'a rien trouvé de différent. Ma requête est en cours de traitement. Pourquoi est-il expiré même quand mon serveur ainsi que le wifi (internet) vont bien. Merci à l'avance .... –

0

Si vous êtes sûr de votre côté serveur, alors il est peut-être pas un logiciel, mais un matériel -spécifique. J'ai ce problème très souvent avec mon iPod5 connecté à la maison wifi, malgré tous les autres appareils connectés au même wifi sont très bien. Aujourd'hui, j'ai testé la connexion à mon serveur sur un appareil à problème via un autre wifi - les erreurs de timeout ont disparu. Bizarre. Qui allez-vous appeler?

+0

Voici un autre thread consacré à ce problème: https://github.com/AFNetworking/AFNetworking/issues/564. – berec