猿问

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

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);

    }


}

这是代理设置的代码。我不知道为什么会抛出这个错误。


MYYA
浏览 139回答 1
1回答

汪汪一只猫

您的代码不完整,并且您没有指定您使用的 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。
随时随地看视频慕课网APP

相关分类

Java
我要回答