1

我正在制作一个浏览器类型的应用程序,我只想为此浏览器设置代理

我尝试使用此代码修改全局代理,但它不起作用

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课,我真的不明白如何为我的浏览器设置代理

ProxySelector我知道里面有一个隐藏的类com.android.settings/.ProxySelector

但我必须手动输入代理。

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

请帮忙。提前致谢!!!

4

2 回答 2

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 年。

于 2013-09-12T06:14:53.143 回答
-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);
....
于 2013-09-12T06:08:53.780 回答