Http Download
最编程
2024-04-10 06:59:50
...
Http / Https 下载文件,startWith不能验证https,测试地址:https://storage.googleapis.com/golang/go1.7.3.windows-amd64.msi
private static final Logger logger = Logger.
getLogger(MethodHandles.lookup().lookupClass());
private static void sunNetSsl() {
System.setProperty("java.protocol.handler.pkgs",
"com.sun.net.ssl.internal.www.protocol");
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
}
private static void javaxNetSsl(){
TrustManager[] trustAllCertArr = new TrustManager[]{
new X509TrustManager() {
public X509Certificate[] getAcceptedIssuers() {
return null;
}
public void checkServerTrusted(X509Certificate[]
certArr,String authType) throws CertificateException {}
public void checkClientTrusted(X509Certificate[]
certArr,String authType) throws CertificateException {}
}};
//activate trust manager
try {
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null,trustAllCertArr,new SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
} catch (NoSuchAlgorithmException | KeyManagementException e) {
e.printStackTrace();
}
}
public static void download(String downloadUrl,String fileName,boolean isHttps) throws IOException{
if (isHttps) {
logger.info(isHttps);
javaxNetSsl();
//sunNetSsl();
}
URL url = new URL(downloadUrl);
try(ReadableByteChannel rbc = Channels.newChannel(url.openStream());
FileOutputStream fos = new FileOutputStream(fileName)){
fos.getChannel().transferFrom(rbc,0,Long.MAX_VALUE);
}catch(IOException e){
e.printStackTrace();
}
}
上一篇: 和谐南行驾驶员发展-时钟
推荐阅读
-
人爱视频网络 HTTP 升级为 HTTPS,为您提供更安全、更放心、更流畅的视听体验!
-
[项目] 仿慕道库单线程单循环型主从反应器模型实现高并发服务器(Http 测试板)
-
使用 tcp 访问点的 rocketmq 和使用 http 访问点的 rocketmq 的区别 - Nuggets
-
HTTP 和 HTTPS:网络通信安全卫士
-
计算机网络,向过去学习 - HTTP
-
访问 HTTP 接口并接收 HTTPS 错误响应
-
[网络安全] HTTP 协议 - 功能 - II.无状态保存
-
http content-type 常见文件格式类型
-
Istio 1.3 发布,HTTP 遥测不再需要混合器
-
13.JAVAEE 的 HTTP 协议