Самый простой способ, который я знаю, это подключить UIWebView делегата и прослушать все запросы, прежде чем они пройдут, и перенаправить те, которые вам нужны, через ASIHttpRequest и ваш собственный проксинастройки.
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
// Configure a proxy server manually
NSURL *url = [NSURL URLWithString:@"http://allseeing-i.com/ignore"];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setProxyHost:@"192.168.0.1"];
[request setProxyPort:3128];
// Alternatively, you can use a manually-specified Proxy Auto Config file (PAC)
// (It's probably best if you use a local file)
[request setPACurl:[NSURL URLWithString:@"file:///Users/ben/Desktop/test.pac"]];
// fire the request async
[request setDelegate:self];
[request startAsynchronous];
return NO;
}
- (void)requestFinished:(ASIHTTPRequest *)request
{
NSData *responseData = [request responseData];
// todo: save data to disk and load with [self webView]
}
Это немного шатко, но должно работать.Просто не забывайте правильно управлять своей памятью и не используйте этот пример с утечкой кода ... YMMV, я даже не проверял, скомпилируется ли он, напечатал все это в окне браузера с некоторыми хакерами копирования и вставки.