2012-03-31 21 views
9

Tengo una URL acortada (por ejemplo, t.co/12345678). Me gustaría resolver el redireccionamiento sin tener que cargar toda la página a través de NSURLConnection. Obviamente, puedo obtenerlo enviando un NSURLConnection y esperando la respuesta, pero esto carga la página entera primero. Solo busco la URL de redireccionamiento. es posible? ¿Si es así, cómo?¿Resolver la redirección de NSURL?

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

Editar: Para la posteridad, aquí está la solución, según lo sugerido por 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); 
         }]; 

Respuesta

5

mismo método que esto: finding the download size of a URL (Content-Length)

pero desea que el [NSURLResponse statusCode] = 301/302/303 y la cabecera Localización aquí: Getting "Location" header from NSHTTPURLResponse

+0

Hmm, el código de estado devuelto es 200 y la respuesta del encabezado http no contiene la URL de redireccionamiento. La URL de respuesta también solo contiene la URL original ... – Keller

+0

Vaya, era un problema de almacenamiento en caché. Funcionó como un amuleto, ¡muchas gracias! – Keller