2012-03-31 23 views
9

Ich habe eine verkürzte URL (z. B. t.co/12345678). Ich möchte die Umleitung auflösen, ohne die gesamte Seite über NSURLConnection laden zu müssen. Natürlich kann ich es bekommen, indem ich eine NSURLConnection sende und auf die Antwort warte, aber das lädt zuerst die gesamte Seite. Ich suche nur nach der Weiterleitungs-URL. Ist das möglich? Wenn das so ist, wie?Resolve Umleitung von NSURL?

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

Edit: Für die Nachwelt hier ist die Lösung, wie amleszk vorgeschlagen.

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); 
         }]; 

Antwort

5

gleichen Methode wie folgt aus: finding the download size of a URL (Content-Length)

aber Sie wollen die [NSURLResponse status] = 301/302/303 und die Location-Header hier: Getting "Location" header from NSHTTPURLResponse

+0

Hmm, kehrte der Statuscode 200 und die HTTP-Header-Antwort enthält die Weiterleitungs-URL nicht. Die Antwort-URL enthält auch nur die ursprüngliche URL ... – Keller

+0

Ups, es war ein Caching-Problem. Arbeitete wie ein Zauber, vielen Dank! – Keller