我们在公司开发时,经常会遇到代理配置问题。
下面的方法是配置SpringBoot的代理(应用场景,当SpringBoot访问第三方接口时)
//配置代理
private static final String PROXY_HOST = "proxy.xxx.com";
private static final int PROXY_PORT = 8080;
private static final String PROXY_USERNAME = "XXX";
private static final String PROXY_PASSWORD = "1234565";
@Bean
public SimpleClientHttpRequestFactory httpClientFactory(){
SimpleClientHttpRequestFactory httpRequestFactory = new SimpleClientHttpRequestFactory();
httpRequestFactory.setReadTimeout(35000);
httpRequestFactory.setConnectTimeout(6000);
SocketAddress address = new InetSocketAddress(PROXY_HOST,PROXY_PORT);
Proxy proxy = new Proxy(Proxy.Type.HTTP,address);
httpRequestFactory.setProxy(proxy);
Authenticator.setDefault(new BasicAuthenticator(PROXY_USERNAME,PROXY_PASSWORD));
return httpRequestFactory;
}
import java.net.Authenticator;
import java.net.PasswordAuthentication;
/**
*配置代理授权
*
*@version2017年3月30日
*@authorZeninte
*@sinceJDK1.6
*
*/
public class BasicAuthenticator extends Authenticator{
String userName;
String password;
public BasicAuthenticator(String userName,String password){
this.userName=userName;
this.password=password;
}
/**
*Called when password authorizationis needed.Subclasses should override the default implementation,which
*returnsnull.
*
*@return The Password Authentication collected from the user,or null if none is provided.
*/
@Override
protected PasswordAuthentication getPasswordAuthentication(){
return new PasswordAuthentication(userName,password.toCharArray());
}
}