2012-04-11 146 views
1

我想提出一个broswer类型的应用程序,我想只为这个浏览器设置代理?

我试图通过使用此代码来修改全局代理设置代理服务器,但它不工作

System.getProperties().put("http.proxyHost", "someProxyURL"); 
System.getProperties().put("http.proxyPort", "someProxyPort"); 
System.getProperties().put("http.proxyUser", "someUserName"); 
System.getProperties().put("http.proxyPassword", "somePassword"); 
System.getProperties().put("http.proxySet", "true"); 

所以我看着proxySelector一流的,我真的不知道如何设置代理我布劳尔

我知道有一个隐藏的类ProxySelectorcom.android.settings/.ProxySelector

卜我必须手动输入代理。

有没有什么办法,我可以配置代理只为mybrowser(只是一个Webview)?

请帮忙。提前致谢!!!

+0

可能重复的问题:http://stackoverflow.com/questions/4488338/webview-android-proxy – Robert 2012-04-11 15:12:03

+0

@Robert感谢您的回复我已经找到了一个解决方案,它打开一个隐藏的活动com.android.settings.ProxySelector 。现在我可以设置代理。但是这个活动没有用户名/密码字段你能指导我如何设置用户名/密码字段,以便我可以在webview中打开一个网页。现在webview说禁止因为用户名/密码没有设置? – 2012-04-11 17:25:54

+0

@Robert我也查看了你的链接,但它总是在网络对象上给null。 – 2012-04-11 17:47:32

回答

-1

你应该使用它像

Authenticator.setDefault(
    new Authenticator() { 
     public PasswordAuthentication getPasswordAuthentication() { 
     return new PasswordAuthentication(
       authUser, authPassword.toCharArray()); 
    } 
    } 
); 

System.setProperty("http.proxyHost", someProxyURl); 
System.setProperty("http.proxyPort", someProxyPort); 
System.setProperty("http.proxyUser", someProxyUser); 
System.setProperty("http.proxyPassword", someProxyPassword); 
.... 
+0

'proxyUser'和'proxyPassword'用于Apache HTTP客户端。他们在JDK中什么都不做。设置'Authenticator'就足够了。 – EJP 2017-03-16 18:18:07

1
System.getProperties().put("http.proxyUser", "someUserName"); 
System.getProperties().put("http.proxyPassword", "somePassword"); 

在JDK这些不要的工作,只有在Apache HTTP客户端。

System.getProperties().put("http.proxySet", "true"); 

这是一个城市神话。它出现在一些早期的Java书籍中,但从未在JDK中做过任何事情。它是已停用的HotJavaBean浏览器c的遗留物。 1998.