当前位置: 首页 > news >正文

Http Download

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 managertry {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();}}

相关文章:

  • UE4_动画基础_ 使用分层动画(Using Layered Animations)
  • 探索算力(云计算、人工智能、边缘计算等):数字时代的引擎
  • 【机器学习】一文掌握机器学习十大分类算法(下)。
  • 基于Spring Boot 3 + Spring Security6 + JWT + Redis实现登录、token身份认证
  • 无人机概述
  • 【Python】无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称解决方案
  • YOLOv5全网独家改进: 卷积魔改 | 变形条状卷积,魔改DCNv3二次创新
  • 需求分析及设计定义
  • 数据结构之树的性质总结
  • Vue3跟Vue2比,性能真的有所提升吗?
  • 在 Databricks 中实时加速 SAP 数据复制的 7 个简单步骤
  • SQL Server 存储过程:BBS论坛(表结构文档下载及30个存储过程)
  • 机器学习的特征选择方法
  • Oracle ADG主备切换
  • 【接口】HTTP(4)|Session、Cookie、token有什么区别?
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • angular2开源库收集
  • IDEA 插件开发入门教程
  • JAVA_NIO系列——Channel和Buffer详解
  • Java知识点总结(JavaIO-打印流)
  • js学习笔记
  • nfs客户端进程变D,延伸linux的lock
  • opencv python Meanshift 和 Camshift
  • QQ浏览器x5内核的兼容性问题
  • Vue2.x学习三:事件处理生命周期钩子
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 什么软件可以剪辑音乐?
  • 探索 JS 中的模块化
  • 学习HTTP相关知识笔记
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • 中文输入法与React文本输入框的问题与解决方案
  • 3月7日云栖精选夜读 | RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占绝对优势 ...
  • 如何用纯 CSS 创作一个货车 loader
  • ​sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块​
  • ​插件化DPI在商用WIFI中的价值
  • (2015)JS ES6 必知的十个 特性
  • (floyd+补集) poj 3275
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (安卓)跳转应用市场APP详情页的方式
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (转) RFS+AutoItLibrary测试web对话框
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .NET Framework 4.6.2改进了WPF和安全性
  • .NET Framework与.NET Framework SDK有什么不同?
  • .net中应用SQL缓存(实例使用)
  • .Net转Java自学之路—SpringMVC框架篇六(异常处理)
  • /var/lib/dpkg/lock 锁定问题
  • [ IO.File ] FileSystemWatcher
  • [ vulhub漏洞复现篇 ] ThinkPHP 5.0.23-Rce
  • [acwing周赛复盘] 第 94 场周赛20230311