2010-07-22 10 views

Respuesta

9

Usted debe ser capaz de hacer theConnection.request.URL, pero no se puede. Molesto, ¿verdad?

La forma más sencilla es guardar la URL (o toda la solicitud NSURL) que estaba cargando. Si usa conexiones múltiples, puede almacenarlas en un diccionario. Tenga en cuenta que -[NSMutableDictionary setObject:forKey:]copia las claves, y NSURLConnections no se pueden copiar; la solución es utilizar CFDictionarySetValue lugar:

CFDictionarySetValue((CFMutableDictionaryRef)dict, connection, request); 
+0

bien ... gracias ... t c ... – Rony

3

Puede obtener URL como esta

- (void)connection:(NSURLConnection *)connection 

    didFailWithError:(NSError *)error 

{ 

    // release the connection, and the data object 

    [connection release]; 

    // receivedData is declared as a method instance elsewhere 

    [receivedData release]; 



    // inform the user 

    NSLog(@"Connection failed! Error - %@ %@", 

      [error localizedDescription], 

      [[error userInfo] objectForKey:NSURLErrorFailingURLStringErrorKey]); 

} 

para obtener más información que van leer here.

4

Por supuesto, las respuestas anteriores funcionan, y estoy buscando una solución similar.

Acaba de encontrar que NSLog ([descripción de la conexión]); imprime algo como:

< NSURLConnection: 0x9129520, http://google.com>

lo tanto, es posible analizar la cadena devuelta por [descripción de la conexión], y obtener la URL de la conexión, a pesar de que es una especie de sucio.

+3

Esto ya no funcionará en iOS 5; puede utilizar la petición actual de NSURLConnection en su lugar –

+0

@MihaiDamian, ¿sabe de algo que se puede hacer para iOS5? Mi programa funcionaba muy bien hasta que actualicé a iOS5 ahora necesito otra forma de obtener la URL de NSURLConnection – MikeIsrael

+0

** Nunca ** confíe en la salida de '-description' para una clase a menos que esté documentado específicamente para usar un formato particular –

3

Aquí está mi sugerencia

- (void)connectionDidFinishLoading:(NSURLConnection *)connection { 
    self.rssFeedConnection = nil; 

    NSLog(@"connectionDidFinishLoading url : %@ ", connection.originalRequest.URL); 
} 
21

Hey hay un comentario de Mihai Damian que trabajó para mí:

- (void)connectionDidFinishLoading:(NSURLConnection *)connection { 
NSURL *myURL = [[connection currentRequest] URL]; 

Saludos

+0

no funciona en 4.3 –

+0

En MAC OS X, se agregó solo en 10.8 por lo que no funcionará incluso para 10.7. Agregando el porque me redirigieron a esta pregunta mientras buscaba OSX no para iOS para el que se hace esta pregunta. – PnotNP

+0

funciona con iOS 5.0 y posteriores – Daniel

0

En Swift 2.0 IOS 9 que lo puede hacer como:

func connectionDidFinishDownloading(connection: NSURLConnection, destinationURL: NSURL) { 
     print(connection.currentRequest.URL!) 
    }