2012-03-31 13 views
9

Mam skrócony adres URL (np. t.co/12345678). Chciałbym rozwiązać przekierowanie bez konieczności ładowania całej strony przez NSURLConnection. Oczywiście mogę to uzyskać wysyłając NSURLConnection i oczekując na odpowiedź, ale najpierw ładuję całą stronę. Szukam tylko adresu URL przekierowania. czy to możliwe? Jeśli tak to jak?Rozwiązać przekierowanie NSURL?

=============

Edit: Dla potomności, tutaj jest rozwiązanie, zgodnie z sugestią amleszk.

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:shortenedURL 
             cachePolicy:NSURLRequestReloadIgnoringCacheData 
            timeoutInterval:15.0f]; 

[request setHTTPMethod:@"HEAD"]; 

[NSURLConnection sendAsynchronousRequest:request 
            queue:[NSOperationQueue mainQueue] 
         completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) { 
          NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse*)response; 
          NSURL *resolvedURL = [httpResponse URL]; 
          NSLog(@"%@", resolvedURL); 
         }]; 

Odpowiedz

5

taki sam sposób jak ten: finding the download size of a URL (Content-Length)

ale chcesz [NSURLResponse StatusCode] = 301/302/303 i nagłówek Lokalizacja tutaj: Getting "Location" header from NSHTTPURLResponse

+0

Hmm, kod statusu zwracany jest 200 a odpowiedź nagłówka http nie zawiera adresu URL przekierowania. Adres URL odpowiedzi zawiera tylko oryginalny adres URL ... – Keller

+0

Ups, był to problem z buforowaniem. Pracował jak urok, wielkie dzięki! – Keller