2013-05-06 134 views
0

我想瀏覽一些帶有代理的網站,我已經擁有了代理(當然還有我想要的應用)。我想以編程方式更改它(無需轉到設置或其他第三方應用程序)。Android代理設置

這裏是我做了什麼:

public class WebViewActivity extends Activity { 


WebView web; 
String PROXY_IP = "MyProxy"; 
int PROXY_PORT = MyPort; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.web_view); 

     web = (WebView) findViewById(R.id.webView1); 
     web.setWebViewClient(new myWebClient()); 
     web.getSettings().setJavaScriptEnabled(true); 
     web.loadUrl("MyURL"); 

     if (PROXY_IP != null) {     
     DefaultHttpClient httpClient = new DefaultHttpClient(); 
     httpClient.getCredentialsProvider().getCredentials(new AuthScope(PROXY_IP, PROXY_PORT)); 
     new UsernamePasswordCredentials("username","passsword"); 
     HttpHost proxy = new HttpHost(PROXY_IP, PROXY_PORT);    

     } 
    } 

我使用的WebView這一點。我已經嘗試過使用phonegap並且只是編輯資產。但我對一些php代碼感到困惑。所以我決定使用webview。

問題是如何使用我的代理使我的webview。

注意:我正在使用GB 2.3

回答

1

問題就迎刃而解了。在webview onCreate我必須調用url。像這樣web = callURL();並加載url使用loadDatawithBaseUrl。之後你必須做一個public class callURL(){。在那裏設置代理。像這樣

DefaultHttpClient httpClient = new DefaultHttpClient(); 
    HttpHost proxy = new HttpHost("your host", your proxy); //proxy that i need 
    httpClient.getParams().setParameter(ConnRouteParams.DEFAULT_PROXY, proxy); 
    httpClient.getCredentialsProvider().setCredentials( 
      new AuthScope("your host", your proxy), 
      new UsernamePasswordCredentials( 
        "your username", "your password")); 

然後在httpget中。也打電話給你的網址。而已。祝你好運

+0

它不適合webview。但其獲取數據 – Nicolas 2013-05-14 04:53:33

0

請嘗試以下方法。我不知道這是否正確。你試一試。

DefaultHttpClient httpClient = new DefaultHttpClient(); 
httpClient.getCredentialsProvider().setCredentials(AuthScope.ANY,new 
NTCredentials(user, pass, null, null)); 
+0

它說將參數2轉換爲Credential。並且這裏是 'httpClient.getCredentialsProvider()。setCredentials(AuthScope.ANY,(Credentials)new'。 我是否需要用硬編碼填寫用戶名和密碼呢?或者只是當url加載時,它PS:仍然不會加載網絡 – Nicolas 2013-05-06 05:04:18

+0

在這種方法中,你必須硬編碼的用戶名和密碼的朋友。 – Gunaseelan 2013-05-06 05:19:16

+0

是的,我已經嘗試過,但它似乎我無法連接web.loadurl和myproxy的集合 – Nicolas 2013-05-06 06:14:36