Setzen Sie die Authentifizierung für Proxy mit ProxySelectorJava

Java-Forum
Anonymous
 Setzen Sie die Authentifizierung für Proxy mit ProxySelector

Post by Anonymous »

Ich benutze SOAP, um API aufzurufen, und ich kann RastTemplate nicht verwenden. Daher habe ich den Weg verwendet. Meldung: < /p>

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

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post