iOS開發ASIHTTPRequest使用代理串連

來源:互聯網
上載者:User

ASIHTTPRequest檢測系統的proxy設定並自動將proxy用於request。從1.0.6版本開始,它還支援PAC檔案和要求授權的proxy。

預設情況下,ASIHTTPRequest將嘗試自動檢測proxy設定。當然,你可以看自己手動設定:

 
  1. // 手動設定Proxy 伺服器 
  2. NSURL *url = [NSURL URLWithString:@"http://www.dreamingwish.com"]; 
  3. ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; 
  4. [request setProxyHost:@"192.168.0.1"]; 
  5. [request setProxyPort:3128]; 
  6.  
  7. // 另一種方法, 使用代理配置指令檔 
  8. // (最好使用本地pac檔案) 
  9. [request setPACurl:[NSURL URLWithString:@"path/to/test.pac"]]; 
要求授權的proxy

在Mac OS上,ASIHTTPRequest可以自動檢測到要求授權的proxy的憑據前提是在系統設定中設定好)。在iOS上,ASIHTTPRequest則無法自動檢測出授權憑據,所以你要麼手動使用delegate來向你的controller或者使用者索取合適的憑據,要麼讓ASIAuthenticationDialog向使用者索取憑據。一旦獲得了一個有效proxy憑據,那麼該憑據將被儲存到keychian中前提是啟用useKeychainPersistence )並自動重用。

手動為proxy指定憑據
 
  1. NSURL *url = [NSURL URLWithString:@"http://www.dreamingwish.com"]; 
  2. ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; 
  3. [request setProxyHost:@"192.168.0.1"]; 
  4. [request setProxyPort:3128]; 
  5.  
  6. //為要求授權的proxy設定username 和password 
  7. [request setProxyUsername:@"bencopsey"]; 
  8. [request setProxyPassword:@"password"]; 
  9.  
  10. // 對於NTLM proxy,還要設定 domain (NTLM proxy功能是未經測試的) 
  11. [request setProxyDomain:@"la.la.land"]; 
使用delegate來提供proxy憑據

這個特性的工作原理和“使用delegate提供HTTP授權”一樣,只有一點不同:你的delegate要響應proxyAuthenticationNeededForRequest:函數。

使用內建的授權對話方塊僅適用於iOS)

這個特性歸功於1.0.8版本的新類ASIAuthenticationDialog 。用來向使用者索取憑據來授權webserver或者proxy。

如果你的delegate不響應proxyAuthenticationNeededForRequest:函數,那麼預設情況下,ASIHTTPRequest將會顯示一個對客戶來提示使用者輸入授權憑據。使用ASIHTTPRequest,開發人員不再需要寫額外的代碼來顯示授權對話方塊,因為預設情況下,ASIHTTPRequest就會顯示它。

使用同步request時proxy授權對話方塊不會顯示出來。

如果你不限使用proxy授權對話方塊,那麼你要麼實現proxyAuthenticationNeededForRequest:,要麼設定shouldPresentProxyAuthenticationDialog 為false此時你的程式將無法串連到proxy)。如果你要改變對話方塊的樣式,你得繼承ASIHTTPRequest類,重寫showProxyAuthenticationDialog 來顯示你自己的對話方塊或者ASIAuthenticationDialog 子類.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.