private static CloseableHttpClient client;
static {
PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager();
connectionManager.setMaxTotal(10);
connectionManager.setDefaultMaxPerRoute(10);
connectionManager.setDefaultSocketConfig(SocketConfig.DEFAULT);
RequestConfig requestConfig = RequestConfig.custom()
.setConnectTimeout(2 * 1000) // 链接超时时间
.setSocketTimeout(2 * 1000)//读超时时间(等待数据超时时间)
.setConnectionRequestTimeout(500)//从池中获取连接超时时间
.build();
client = HttpClients.custom()
.setDefaultRequestConfig(requestConfig)
.setConnectionManager(connectionManager)
.setRetryHandler(StandardHttpRequestRetryHandler.INSTANCE)
.build();
}
public static File getFileByUrl2(String url) {
HttpGet httpGet = new HttpGet(url);
httpGet.setHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
try (CloseableHttpResponse response = client.execute(httpGet);) {
InputStream in = response.getEntity().getContent();
File image = File.createTempFile("image", url.substring(url.lastIndexOf(".")));
// 内部使用了try()语法糖的方式会自动关闭
FileUtils.copyInputStreamToFile(in, image);
} catch (IOException e) {
log.info("读取文件异常:{}", url, e);
}
return null;
}
httpclient下载文件
最新推荐文章于 2024-08-27 15:02:43 发布