2009-12-23 4 views

Répondre

1

Vous ne serez en mesure de trouver ceci après avoir essayé de se connecter en utilisant NSURLConnection. Si vous ajoutez une méthode à votre délégué NSURLConnection, -connection: willSendRequest: redirectResponse :, vous serez informé avant réoriente arriver. Saisissez simplement l'URL de la requête transmise, et c'est votre réponse.

+0

Je veux le faire de manière synchrone .. peut-il être fait? –

+0

Je ne crois pas. Apple décourage les opérations synchrones. –

6

je l'ai fait,

voici comment

NSURL *originalUrl=[NSURL URLWithString:@"http://YourURL.com"]; 
NSData *data=nil; 
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:originalUrl cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:10]; 
NSURLResponse *response; 
NSError *error; 
data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; 
NSURL *LastURL=[response URL]; 
[request release]; 
[error release]; 
7

solution de zanque fonctionne, mais afin d'éviter le téléchargement de données "inutiles", je change la méthode http HEAD:

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:orinigalURL cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:15.0]; 
[request setHTTPMethod:@"HEAD"]; 
NSURLResponse *response = nil; 
[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil]; 
NSURL *finalURL = response.URL; 
+3

Cela pourrait être mieux adapté comme un commentaire au lieu d'une réponse. Ou peut-être un edit. – EWit

+1

@EWit, l'utilisateur a 1 Rep. Ils ne peuvent pas poster un commentaire. De plus, ceci fournit une réponse alternative à la question. – Andy

+0

@Andy Je viens de faire un commentaire destiné à fournir une orientation future. Mais parce qu'il s'étend sur une réponse existante, il aurait peut-être été préférable de le mettre comme une vérification sur la réponse afin que les gens qui le lisent soient mis au courant à la fois du problème et de la solution. Il y a aussi une raison pour laquelle j'ai choisi d'utiliser "pourrait être" au lieu de "devrait être". – EWit

Questions connexes