一、直接设置系统属性,设置后所有网络请求都有效
System.setProperty("proxyType", "4");
System.setProperty("proxyPort", "80"));
System.setProperty("proxyHost", "127.0.0.1");
System.setProperty("proxySet", "true");
二、用用java.net.Proxy类
import java.io.IOException;
import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class TestProxy5Use {
private static Logger LOG = LoggerFactory.getLogger(TestProxy5Use.class);
private static HttpResponse response;
private static RequestConfig requestConfig;
public static void main(String[] args) {
String url = "https://www.baidu.com/";
String result = doGetProxy(url);
System.out.println("result= "+result);
}
public static String doGetProxy(String url) {
CloseableHttpClient client = null;
try {
LOG.info("url:" + url);
HttpHost proxy = new HttpHost("127.0.0.1", 80, "http");
//RequestConfig config = RequestConfig.custom().setProxy(proxy).build();
client = HttpClients.createDefault();
HttpGet get = new HttpGet(url);
RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(60000).setConnectTimeout(60000)
.setProxy(proxy) //设置代理
.build();//设置请求和传输超时时间
get.setConfig(requestConfig);
response = client.execute(get);
} catch (Exception e) {
LOG.error(String.format("doGet url %s exception: %s", url,e.getLocalizedMessage()));
System.out.println("异常:"+e.getLocalizedMessage());
}
String resultContent = null;
try {
resultContent = new BasicResponseHandler().handleResponse(response);
} catch (IOException e) {
LOG.error(String.format("doGet url %s IOException: %s", url,e.getLocalizedMessage()));
}
return resultContent;
}
}
httpclient向HTTPS发送数据建立SSL连接时的异常:
转载自:https://www.iteye.com/blog/zhuyuehua-1102347