java下载图片(通用)httpClient,io流

365bet足球现金 📅 2025-09-21 14:48:44 ✍️ admin 👁️ 8214 ❤️ 511
java下载图片(通用)httpClient,io流

httpClient下载图片

public static void downImage(CloseableHttpClient client, String imgUrl, String savePath) {

HttpGet request = new HttpGet(imgUrl);

// 设置请求超时和传输超时

RequestConfig requestConfig = RequestConfig.custom()

.setSocketTimeout(50000).setConnectTimeout(50000).build();

//伪造请求头

request.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.75 Safari/537.36");

request.setConfig(requestConfig);

// 报错PKIX path building failed 不验证证书添加下面注释语句

/* try {

SSLContext sslcontext = SSLContexts.custom().loadTrustMaterial(null, new TrustSelfSignedStrategy()).build();

SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslcontext, new String[]{"TLSv1"}, null, SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);

client = HttpClients.custom().setSSLSocketFactory(sslsf).build();

} catch (Exception e) {

e.printStackTrace();

}*/

try {

CloseableHttpResponse response = client.execute(request);

if (HttpStatus.SC_OK == response.getStatusLine().getStatusCode()) {

HttpEntity entity = response.getEntity();

InputStream in = entity.getContent();

FileUtils.copyInputStreamToFile(in, new File(savePath));

System.out.println("下载成功:" + imgUrl);

}

} catch (Exception e) {

e.printStackTrace();

throw new RuntimeException(e);

} finally {

request.releaseConnection();

}

}

我们测试一下:

public static void main(String[] args) {

CloseableHttpClient client =null;

try {

client = HttpClients.createDefault();//写循环外

downImage(client,"http://www.XXXX.com.cn/uploadfile/ftpfile/XXX.png", "E:/image/1478150765619314881279.PNG");

} catch (Exception e) {

e.printStackTrace();

}finally{

if(client!=null){

try {

client.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

io流下载

public class ImageDownload {

public static boolean httpDownload(String httpUrl, String saveFile) {

// 1.下载网络文件

int byteRead;

URL url;

try {

url = new URL(httpUrl);

} catch (MalformedURLException e1) {

e1.printStackTrace();

return false;

}

try {

HttpURLConnection conn = (HttpURLConnection) url.openConnection();

//2.获取链接

// URLConnection conn = url.openConnection();

if (conn.getResponseCode() == 404) {

System.out.println("状态码呱啦啦啦啦啦啦啦啦==" + url);

return false;

}

//3.输入流

InputStream inStream = conn.getInputStream();

//3.写入文件

File file = new File(saveFile);

if (!file.exists()) {

//先得到文件的上级目录,并创建上级目录,在创建文件

file.getParentFile().mkdir();

try {

//创建文件

file.createNewFile();

} catch (IOException e) {

e.printStackTrace();

}

}

FileOutputStream fs = new FileOutputStream(file);

byte[] buffer = new byte[1024];

while ((byteRead = inStream.read(buffer)) != -1) {

fs.write(buffer, 0, byteRead);

}

inStream.close();

fs.close();

return true;

} catch (FileNotFoundException e) {

System.out.println("文件找不到呱啦啦啦啦啦啦啦啦==" + url);

e.printStackTrace();

return false;

} catch (IOException e) {

System.out.println("IO呱啦啦啦啦啦啦啦啦==" + url);

e.printStackTrace();

return false;

}

}

}

测试一下:

public static void main(String[] args) {

ImageDownload.httpDownload("http://www.xxxxx.cn/uploadfile/ftpfile/xxxxx.png,", "E:\\image\\xxxx.PNG");

}

相关推荐

阔别一年多重返舞台 锺洁希元旦办新歌试听秀健美身材
日本很肉的bl动漫 十大BL动漫排行(经典的BL番推荐)
bt365体育网址

日本很肉的bl动漫 十大BL动漫排行(经典的BL番推荐)

📅 07-08 👁️ 9213
光驱的前生今世:为什么光盘还未消失,大多数电脑早已取消了光驱?