为了账号安全,请及时绑定邮箱和手机立即绑定

代理主机名、端口、用户名、带有 httpurl 连接的密码

代理主机名、端口、用户名、带有 httpurl 连接的密码

MYYA 2022-07-20 16:08:32
private static void setProxy(String proxyHostName,int proxyport){    proxy=new Proxy(Proxy.Type.HTTP,new InetSocketAddress(proxyHostName,proxyport));}private static void setProxy(String proxyHostName,int proxyport,String username,String password){    setProxy(proxyHostName,proxyport);    if (username!=null && password!=null) {        Authenticator authenticator = new Authenticator() {            public PasswordAuthentication getPasswordAuthentication() {                return (new PasswordAuthentication(username, password.toCharArray()));            }        };        Authenticator.setDefault(authenticator);    }}这是代理设置的代码。我不知道为什么会抛出这个错误。
查看完整描述

1 回答

?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

您的代码不完整,并且您没有指定您使用的 Java 版本,所以我不能肯定地说,但我猜这可能是原因: 自 java-8-update-111 以来无法通过代理隧道。


尝试setProxy()像这样修改您的方法:


private static void setProxy(String proxyHostName, int proxyport, String username, String password){

    setProxy(proxyHostName,proxyport);

    if (username!=null && password!=null) {

        System.setProperty("jdk.http.auth.tunneling.disabledSchemes", "");

        Authenticator authenticator = new Authenticator() {

            public PasswordAuthentication getPasswordAuthentication() {

                return (new PasswordAuthentication(username, password.toCharArray()));

            }

        };

        Authenticator.setDefault(authenticator);

    }

}

或者使用-Djdk.http.auth.tunneling.disabledSchemes=.


有关 Java 中经过身份验证的代理的更多详细信息,可以在此处找到:authenticated http proxy with java。



查看完整回答
反对 回复 2022-07-20
  • 1 回答
  • 0 关注
  • 138 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信