¿cómo obtengo la URL dentro del siguiente método?NSURLConnection obtener URL
- (void)connectionDidFinishLoading:(NSURLConnection*)theConnection
¿cómo obtengo la URL dentro del siguiente método?NSURLConnection obtener URL
- (void)connectionDidFinishLoading:(NSURLConnection*)theConnection
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);
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.
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.
Esto ya no funcionará en iOS 5; puede utilizar la petición actual de NSURLConnection en su lugar –
@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
** Nunca ** confíe en la salida de '-description' para una clase a menos que esté documentado específicamente para usar un formato particular –
Aquí está mi sugerencia
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
self.rssFeedConnection = nil;
NSLog(@"connectionDidFinishLoading url : %@ ", connection.originalRequest.URL);
}
Hey hay un comentario de Mihai Damian que trabajó para mí:
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
NSURL *myURL = [[connection currentRequest] URL];
Saludos
En Swift 2.0 IOS 9 que lo puede hacer como:
func connectionDidFinishDownloading(connection: NSURLConnection, destinationURL: NSURL) {
print(connection.currentRequest.URL!)
}
bien ... gracias ... t c ... – Rony