2013-05-06 91 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