解决Java使用HTTP代理报错java.io.IOException Unable to tunnel through proxy. Proxy returns HTTP 1.1 407 Proxy Authentication Required的问题

问题描述

java.io.IOException: Unable to tunnel through proxy. Proxy returns "HTTP/1.1 407 Proxy Authentication Required"

问题原因

代理用户名密码使用Authenticator.setDefault设置的问题

解决方法

JDK 8u111版本后 默认将basic格式的鉴权禁止了 代码设置环境变量System.setProperty("jdk.http.auth.tunneling.disabledSchemes", "");打开basic格式 必须在HTTPURLConnection类初始化前

可以通过设置系统变量jdk.http.auth.tunneling.disabledSchemes,或设置JVM启动参数-Djdk.http.auth.tunneling.disabledSchemes="",保证

也可以将System.setProperty("jdk.http.auth.tunneling.disabledSchemes", "");调用放到Spring Boot 启动类main方法中