2010-06-08 3 views
4

Я создаю приложение типа веб-браузера (используя объект веб-представления), которому необходимо подключиться к Интернету через прокси-сервер. Сервер, порт, имя пользователя и пароль могут быть жестко закодированы в приложении, но, к сожалению, я понятия не имею, как настроить параметры прокси-сервера в веб-представлении без изменения настроек прокси-сервера.Использование веб-представления за прокси (какао)

Если вы знаете, как это сделать, пожалуйста, предоставьте примерный код, спасибо большое! (Кроме того, если он меняет что-либо - я разрабатываю для mac, а не iPhone)

ответ

4

Самый простой способ, который я знаю, это подключить UIWebView delegate и прослушать все запросы до их прохождения и перенаправить те, которые вам нужны примерно через 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, я даже не протестировал, если это компилируется, набрал все это в окне браузера с помощью некоторого копирования и вставки.

Смежные вопросы