java访问https链接下载图片
一、通过maven引入https工具包
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.13</version>
</dependency>
二、https链接下载文件工具类
package com.mhx.info.service;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.conn.ssl.NoopHostnameVerifier;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.ssl.SSLContexts;
import org.junit.Test;
import java.io.FileOutputStream;
import java.io.InputStream;
/**
* @Description: https文件链接下载文件
* @BelongsProject: mhxFileDownload
* @BelongsPackage: com.mhx.info.service
* @ClassName: BatchDownloadFile
* @Author: MHX
* @CreateTime: 2022/11/25
*/
public class BatchDownloadFileTest {
/**
* https来获得
*
* @throws Exception 异常
*/
@Test
public void httpsToGet() throws Exception {
// 文件下载存储路径
String savePath = "D:/zhxcmfs/myFiles";
// 文件命名
String fileName = "图片.png";
// https文件下载链接
String apiHttp = "https://gimg2.baidu.com/image_search/src=http%3A%2F%2Flmg.jj20.com%2Fup%2Fallimg%2F1114%2F040221103339%2F210402103339-8-1200.jpg&refer=http%3A%2F%2Flmg.jj20.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1671956738&t=7369439221c4fff3114c8cbaa28b4330";
// 忽略对服务器端证书的校验
SSLConnectionSocketFactory scsf = new SSLConnectionSocketFactory(SSLContexts.custom().loadTrustMaterial(null, new TrustSelfSignedStrategy()).build(),
NoopHostnameVerifier.INSTANCE);
CloseableHttpClient client = HttpClients.custom().setSSLSocketFactory(scsf).build();
HttpGet httpget = new HttpGet(apiHttp);
HttpResponse response = client.execute(httpget);
HttpEntity entity = response.getEntity();
InputStream is = entity.getContent();
// 对存储空间大小预定义
int cache = 10 * 1024;
// 文件输出路径
FileOutputStream fileout = new FileOutputStream(savePath + "/" + fileName);
byte[] buffer = new byte[cache];
int ch = 0;
while ((ch = is.read(buffer)) != -1) {
fileout.write(buffer, 0, ch);
}
is.close();
fileout.flush();
fileout.close();
}
}
三、https链接下载文件工具类讲解
// 文件下载存储路径
String savePath = “D:/zhxcmfs/myFiles”;
// 文件命名
String fileName = “图片.png”;
// https文件下载链接
String apiHttp = “https://gimg2.baidu.com/image_search/src=http%3A%2F%2Flmg.jj20.com%2Fup%2Fallimg%2F1114%2F040221103339%2F210402103339-8-1200.jpg&refer=http%3A%2F%2Flmg.jj20.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1671956738&t=7369439221c4fff3114c8cbaa28b4330”;
// 忽略对服务器端证书的校验
SSLConnectionSocketFactory scsf = new SSLConnectionSocketFactory(SSLContexts.custom().loadTrustMaterial(null, new TrustSelfSignedStrategy()).build(),
NoopHostnameVerifier.INSTANCE);
CloseableHttpClient client = HttpClients.custom().setSSLSocketFactory(scsf).build();
HttpGet httpget = new HttpGet(apiHttp);
HttpResponse response = client.execute(httpget);
HttpEntity entity = response.getEntity();
InputStream is = entity.getContent();
// 对存储空间大小预定义
int cache = 10 * 1024;
// 文件输出路径
FileOutputStream fileout = new FileOutputStream(savePath + “/” + fileName);
byte[] buffer = new byte[cache];
int ch = 0;
while ((ch = is.read(buffer)) != -1) {
fileout.write(buffer, 0, ch);
}
is.close();
fileout.flush();
fileout.close();文章来源地址https://www.toymoban.com/news/detail-404406.html
文章来源:https://www.toymoban.com/news/detail-404406.html
到了这里,关于java访问https链接下载图片的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!