HTTP -Transportfehler: java.io.ioxception: Durch Proxy kann nicht der Tunnel abzahlen. Proxy gibt "http/1.1 407 Proxy-Authentifizierung erforderlich
Ich bin mir sicher, dass mein Benutzername und mein Passwort für meinen Proxy korrekt sind. Dies ist der Code:
"> ">"> ">"> ">"> ">"> ">"> ">"> ">"> ">"> ">"> ">"> ">"> ">"> ">"> ">"> ">"> ">"> ">"> ">">
Code: Select all
@Component
@Slf4j
public class CustomProxySelector extends ProxySelector {
private ProxySelector def;
private final List proxies = new ArrayList();
@Value("${proxy-host:#{null}}")
private String proxyHost;
@Value("${proxy-port:#{null}}")
private Integer proxyPort;
@Value("${proxy-username:#{null}}")
private String username;
@Value("${proxy-password:#{null}}")
private String password;
@Value("${api}")
private String api;
@Value("${proxy.enable:false}")
private boolean proxy;
@PostConstruct
public void init() {
this.def = ProxySelector.getDefault();
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(proxyHost, (null == proxyPort) ? 80 : proxyPort));
this.proxies.add(proxy);
ProxySelector.setDefault(this);
Authenticator.setDefault(new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password.toCharArray());
}
});
}
@Override
public List select(URI uri) {
if (StringUtils.compare(uri.toString(), this.api) == 0 && Boolean.TRUE.equals(this.enableProxy)) {
log.info(logString, uri, this.proxies);
return this.proxies;
}
log.info(logString, uri, def.select(uri));
return def.select(uri);
}
@Override
public void connectFailed(URI uri, SocketAddress sa, IOException ioe) {
log.info("Failed to connect to a proxy ({}) when connecting to {}", sa, uri.getHost());
if (sa == null || ioe == null) {
throw new IllegalArgumentException("Arguments can't be null.");
}
def.connectFailed(uri, sa, ioe);
}
}