系列文章目录

Java 网络编程 01 —— Socket TCP通信
Java 网络编程 02 —— Socket UDP通信
Java 网络编程 03 —— URL下载资源


文章目录

  • 系列文章目录
  • 1. Java 网络编程—URL
  • 2. 通过URL下载网易云音乐【证书问题解决】

1. Java 网络编程—URL

URL即统一资源定位符,用于定位互联网上的某一个资源,我们可以通过URL类+文件流实现网络资源下载。

URL格式:协议://IP地址:端口/项目名/资源

例如:https://baijiahao.baidu.com/s?id=1689363829118209355&wfr=spider&for=pc

Java中有URL类,如下代码。

package lessen03;import java.net.MalformedURLException;
import java.net.URL;public class URLDemo01 {public static void main(String[] args) throws MalformedURLException {//该URL实际不存在,下列方法是分割该URL获取想要的内容URL url = new URL("https://localhost:8080/helloworld/index.jsp?username=zhang&password=123");System.out.println(url.getProtocol());//协议System.out.println(url.getHost());//IPSystem.out.println(url.getPort());//端口System.out.println(url.getPath());//文件路径System.out.println(url.getFile());//完整文件路径System.out.println(url.getQuery());//参数}
}

2. 通过URL下载网易云音乐【证书问题解决】

其中解决证书信任问题参考这两位博客,解释了证书问题。

java在访问https资源时的证书信任问题
  java在访问https资源时,忽略证书信任问题

具体下载资源代码如下:

package lessen03;import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLSession;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.URL;
import java.util.logging.Logger;public class URLDown01 {//这里是解决证书问题代码-头private static Logger logger;private static void trustAllHttpsCertificates() throws Exception {javax.net.ssl.TrustManager[] trustAllCerts = new javax.net.ssl.TrustManager[1];javax.net.ssl.TrustManager tm = new miTM();trustAllCerts[0] = tm;javax.net.ssl.SSLContext sc = javax.net.ssl.SSLContext.getInstance("SSL");sc.init(null, trustAllCerts, null);javax.net.ssl.HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());}//这里是解决证书问题的代码-尾public static void main(String[] args) throws Exception {//该部分必须在获取connection前调用trustAllHttpsCertificates();HostnameVerifier hv = new HostnameVerifier() {public boolean verify(String urlHostName, SSLSession session) {logger.info("Warning: URL Host: " + urlHostName + " vs. " + session.getPeerHost());return true;}};HttpsURLConnection.setDefaultHostnameVerifier(hv);//核心代码从这开始//1. 创建一个URLURL url = new URL("https://m701.music.126.net/20210120105307/bf794ade74d38e0810a3c0984eb45ccf/jdyyaac/5558/0052/550c/b26bf204b4781483b72cbfcc9d09dadc.m4a");//2. 打开连接HttpsURLConnection urlConnection = (HttpsURLConnection) url.openConnection();//3. 获取输入流InputStream is = urlConnection.getInputStream();//4. 获取文件输出流FileOutputStream fos = new FileOutputStream("出山.m4a");//5. 开始下载byte[] buffer = new byte[1024];int len;while ((len = is.read(buffer)) != -1) {fos.write(buffer, 0, len);}//6.关闭资源fos.close();is.close();urlConnection.disconnect();//核心代码到这结束}//这里是解决证书问题的代码-头static class miTM implements javax.net.ssl.TrustManager, javax.net.ssl.X509TrustManager {public java.security.cert.X509Certificate[] getAcceptedIssuers() {return null;}public boolean isServerTrusted(java.security.cert.X509Certificate[] certs) {return true;}public boolean isClientTrusted(java.security.cert.X509Certificate[] certs) {return true;}public void checkServerTrusted(java.security.cert.X509Certificate[] certs, String authType)throws java.security.cert.CertificateException {return;}public void checkClientTrusted(java.security.cert.X509Certificate[] certs, String authType)throws java.security.cert.CertificateException {return;}}//这里是解决证书问题的代码-尾
}

中间核心代码部分就是通过URL配合IO流下载网上资源的方法。

如何查找需要的URL看下面图片:


    建议复制了URL后,粘贴到浏览器试试,如果浏览器能正常播放说明该URL可用。

Java 网络编程 03 —— URL下载资源相关推荐

  1. java网络编程---使用URL爬取歌曲

    前言 最近在学习狂神老师所讲的网络编程,get到了很对新技能.今天我跟大家分享一下如何使用URL爬取歌曲 1. URL 在WWW上,每一信息资源都有统一的且在网上唯一的地址,该地址就叫URL(Unif ...

  2. Java 网络编程:必知必会的 URL 和 URLConnection

    java.net.URL 类将 URL 地址进行了封装,并提供了解析 URL 地址的基本方法,比如获取 URL 的主机名和端口号.java.net.URLConnection 则代表了应用程序和 UR ...

  3. 迈入JavaWeb第一步,Java网络编程基础,TCP网络编程URL网络编程等

    文章目录 网络编程概述 网络通信要素 要素一IP和端口号 要素二网络协议 TCP网络编程 UDP网络编程 URL网络编程 Java网络编程基础 网络编程概述 Java是Internet上的语言,它从语 ...

  4. Java网络编程和NIO详解开篇:Java网络编程基础

    老曹眼中的网络编程基础 转自:https://mp.weixin.qq.com/s/XXMz5uAFSsPdg38bth2jAA 我们是幸运的,因为我们拥有网络.网络是一个神奇的东西,它改变了你和我的 ...

  5. Java - 网络编程(NetWork)

    Java - 网络编程(NetWork) 一.java.net包下的 InetAddress 类的使用: > 一个 InetAddress 代表着一个IP地址 > 主要用来查看本机的IP和 ...

  6. 【Java】 Java网络编程总结

     一.网络编程三要素: IP地址:每个设备在网络中的唯一标识. 端口号:每个程序在设备上的唯一标识. 协议:为计算机网络中进行数据交换而建立的规则或约定的集合. UDP: 面向无连接,数据不安全,速度 ...

  7. python网络编程视频教程_Java网络开发视频教程 – 一站式学习Java网络编程视频教程 全面理解BIO(无密)...

    Java网络开发视频教程 – 一站式学习Java网络编程视频教程 全面理解BIO(无密) 全面理解BIO/NIO/AIO 网络层编程,是每一个开发者都要面对的技术.课程为解决大家学习网络层知识的难题, ...

  8. java网络编程(二)

    注意:架构师学习资源已更新. 获取方式:在公众号内回复"架构师资源" 文章推荐 精选java等全套视频教程 精选java电子图书 大数据视频教程精选 1.2 网络编程技术 前面介绍 ...

  9. 【带你入门】java网络编程

    网络编程 网络编程对于很多的初学者来说,都是很向往的一种编程技能,但是很多的初学者却因为很长一段时间无法进入网络编程的大门而放弃了对于该部分技术的学习. 在 学习网络编程以前,很多初学者可能觉得网络编 ...

最新文章

  1. 5000万用户数据泄露,大数据时代隐私保护困难重重
  2. 树莓派进阶之路 (037) - 设置树莓派3 B+的静态IP
  3. 张槎地铁站定位综合枢纽 与多条重要轨道交汇
  4. jMeter 里如何使用 variable
  5. Linux非系统盘挂载,[转载] Linux mount 挂载分区、硬盘
  6. sklearn中ValueError: Unknown label type: ‘continuous‘错误解决
  7. Excel字符串截取(leftrightmid)
  8. 2018.7.28 二叉树的遍历规则(前序遍历、后序遍历、中序遍历)
  9. 设计模式--观察者模式与命令模式
  10. Laravel 在哪些地方使用了 trait ?
  11. Word 2010基本操作——新建文档、保存文档
  12. AOD实践,modis数据下载,modis数据处理,
  13. 简笔画花边边框超简单_好看的花边边框简笔画
  14. 泛微怎么自动保存服务器,【泛微OA】系统超时登出解决方案
  15. 详解电磁兼容测试中 EMI 接收机的几种检波器
  16. 【已解决】win10修改用户名,禁用Administrator后,若要继续,请输入管理员用户和密码,只有否
  17. Word2vec代码实现
  18. java文字云_在线文字云制作工具
  19. A Survey on Metaverse: the State-of-the-art,Technologies, Applications, and Challenges
  20. 微信登录API使用小结

热门文章

  1. c语言指针回调,C语言函数指针,函数动态回调
  2. 合金弹头游戏项目制作
  3. UITextView文本居上显示
  4. linux终端vi怎么复制粘贴,如何在VI编辑器中复制粘贴内容?
  5. 使用jmeter进行并发测试
  6. Nginx指定时间段无法访问(Nginx时间段黑名单)
  7. tomcat配置说明和内存扩容
  8. 苹果应用加急审核操作流程
  9. 【DevFest 2020】嘉宾实录总结:《Flutter 开发日常》by 崔振平 孔想容 | 主会场
  10. 马斯克的收购让员工感到恐慌 CEO安抚称公司不会被“挟持”