开发者

NSURLConnection get URL

开发者 https://www.devze.com 2023-01-08 15:12 出处:网络
how i get the URL inside th开发者_高级运维e following method ?? - (void)connectionDidFinishLoading:(NSURLConnection*)theConnection

how i get the URL inside th开发者_高级运维e following method ??

- (void)connectionDidFinishLoading:(NSURLConnection*)theConnection 


Hey there's a comment from Mihai Damian that worked for me:

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

Cheers


You ought to be able to do theConnection.request.URL, but you can't. Annoying, isn't it?

The simplest way is to just save the URL (or the whole NSURLRequest) that you were loading. If you're using multiple connections, you can store them in a dictionary. Note that -[NSMutableDictionary setObject:forKey:] copies keys, and NSURLConnections are not copyable; the workaround is to use CFDictionarySetValue instead:

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


Of course the above answers work, and I am looking for similar solution.

Just found that NSLog([connection description]); prints something like:

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

So it is possible to parse the string returned by [connection description], and get the url from the connection, though it is kind of dirty.


You can get URL like this

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

}

for more information you van read here.


Here is my suggestion

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

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


In Swift 2.0 iOS 9 you can do it like:

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

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号