开发者

iOS - Track URL connections

I'm currently trying to log all URL connections made in my app. Is there a debug switch, or network activity monitor tool I can use to do this?

Or is 开发者_如何学Pythonmy only alternative to include NSLog statements throughout the source base?

Thanks, Ash


All NSURLConnections of your application use a shared cache class for default

http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSURLCache_Class/Reference/Reference.html

So, one thing you could do is subclass the default cache, and then at the cachedResponseForRequest NSURLCache method, you can to track you requests.

@interface CustomNSURLCache : NSURLCache {

}

@end


@implementation CustomNSURLCache


-(NSCachedURLResponse *)cachedResponseForRequest:(NSURLRequest *)request {

    NSLog(@"connection will send request for url: %@", request);

    return [super cachedResponseForRequest:request];

}

@end

At your AppDelegate didFinishLaunchingWithOptionsmethod, set the shared cache to an instance of your cache.

CustomNSURLCache *customCache = [[CustomNSURLCache alloc] initWithMemoryCapacity:0 diskCapacity:51200 diskPath:nil];
[NSURLCache setSharedURLCache:customCache];
[customCache release];

(being 0 the default value for MemoryCapacity and 512000 for DiskCapacity)

Now when you create a new connection

NSURLRequest *request1 = [[NSURLRequest alloc] initWithURL:[NSURL URLWithString:@"http://stackoverflow.com"]];
[[NSURLConnection alloc] initWithRequest:request1 delegate:self];

you should see something like this at your console

connection will send request for url: <NSURLRequest https://stackoverflow.com/>


In Instruments there is a Network Activity Monitor under the System Instruments. I have not personally used it though so I don't know if it does what you want.

0

上一篇:

下一篇:

精彩评论

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

最新问答

问答排行榜