Http Download

Http / Https 下载文件,startWith不能验证https,测试地址:https://storage.googleapis.com/golang/go1.7.3.windows-amd64.msi

java 复制代码
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();
		}
	}
	
相关推荐
YuMiao4 天前
gstatic连接问题导致Google Gemini / Studio页面乱码或图标缺失问题
服务器·网络协议
不可能的是5 天前
前端 SSE 流式请求三种实现方案全解析
前端·http
Jony_7 天前
高可用移动网络连接
网络协议
chilix7 天前
Linux 跨网段路由转发配置
网络协议
DianSan_ERP9 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
呉師傅9 天前
火狐浏览器报错配置文件缺失如何解决#操作技巧#
运维·网络·windows·电脑
gihigo19989 天前
基于TCP协议实现视频采集与通信
网络协议·tcp/ip·音视频
2501_946205529 天前
晶圆机器人双臂怎么选型?适配2-12寸晶圆的末端效应器有哪些?
服务器·网络·机器人
linux kernel9 天前
第七部分:高级IO
服务器·网络
数字护盾(和中)9 天前
BAS+ATT&CK:企业主动防御的黄金组合
服务器·网络·数据库