java.net.url 兼容_java.net.Url类的应用(网络编程)
一、认识URL
类 URL 代表一个统一资源定位符,它是指向互联网“资源”的指针。资源可以是简单的文件或目录,也可以是更为复杂的对象的引用,例如对数据库或搜索引擎的查询。
简单的可以把URL理解为包含:协议、主机名、端口、路径、查询字符串和参数等对象。每一段可以独立设置。
应用程序也可以指定一个“相对 URL”,它只包含到达相对于另一个 URL 的资源的足够信息。HTML 页面中经常使用相对 URL.
相对 URL 不需要指定 URL 的所有组成部分。如果缺少协议、主机名称或端口号,这些值将从完整指定的 URL 中继承。
由于 URL 不懂 URL 转义,所以它不会识别同一 URL 的对等编码和解码形式。
注意,URI 类在某些特定情况下对其组成字段执行转义。建议使用 URI 管理 URL 的编码和解码,并使用 toURI() 和 URI.toURL() 实现这两个类之间的转换。
也可以使用 URLEncoder 和 URLDecoder 类,但是只适用于 HTML 形式的编码,它与 RFC2396 中定义的编码机制不同。
(以上介绍来自Java API doc)
二、URL对象的构建
方式很多,可以看看API文档。
三、获取URL指定的资源
下面给个例子,说明如何获取到指定的资源。
Java代码
importjava.io.*;
importjava.net.URL;
importjava.net.URLConnection;
publicclassTestURL {
publicstaticvoidmain(String[] args)throwsIOException {
test4();
test3();
test2();
test();
}
/**
* 获取URL指定的资源。
*
* @throws IOException
*/
publicstaticvoidtest4()throwsIOException {
URL url =newURL("http://lavasoft.blog.51cto.com/attachment/200811/200811271227767778082.jpg");
//获得此 URL 的内容。
Object obj = url.getContent();
System.out.println(obj.getClass().getName());
}
/**
* 获取URL指定的资源
*
* @throws IOException
*/
publicstaticvoidtest3()throwsIOException {
URL url =newURL("http://www.hrtsea.com/down/soft/45.htm");
//返回一个 URLConnection 对象,它表示到 URL 所引用的远程对象的连接。
URLConnection uc = url.openConnection();
//打开的连接读取的输入流。
InputStream in = uc.getInputStream();
intc;
while((c = in.read()) != -1)
System.out.print(c);
in.close();
}
/**
* 读取URL指定的网页内容
*
* @throws IOException
*/
publicstaticvoidtest2()throwsIOException {
URL url =newURL("http://www.hrtsea.com/down/soft/45.htm");
//打开到此 URL 的连接并返回一个用于从该连接读入的 InputStream。
Reader reader =newInputStreamReader(newBufferedInputStream(url.openStream()));
intc;
while((c = reader.read()) != -1) {
System.out.print((char) c);
}
reader.close();
}
/**
* 获取URL的输入流,并输出
*
* @throws IOException
*/
publicstaticvoidtest()throwsIOException {
URL url =newURL("http://lavasoft.blog.51cto.com/62575/120430");
//打开到此 URL 的连接并返回一个用于从该连接读入的 InputStream。
InputStream in = url.openStream();
intc;
while((c = in.read()) != -1)
System.out.print(c);
in.close();
}
}
四、Java所支持的URL类型
Java代码
importjava.net.URL;
publicclassMainClass {
publicstaticvoidmain(String[] args) {
String host ="www.java2s.com";
String file ="/index.html";
String[] schemes = {"http","https","ftp","mailto","telnet","file","ldap","gopher",
"jdbc","rmi","jndi","jar","doc","netdoc","nfs","verbatim","finger","daytime",
"systemresource"};
for(inti =0; i
try{
URL u =newURL(schemes, host, file);
System.out.println(schemes +" is supported/r/n");
}catch(Exception ex) {
System.out.println(schemes +" is not supported/r/n");
}
}
}
}
java.net.url 兼容_java.net.Url类的应用(网络编程)相关推荐
- java url 协议_Java自定义URL协议
Java提供了对URL协议进行扩展的能力,通过扩展用户可以自定义URL通信协议,JDK默认提供了对HTTP,FTP,JAR,FILE等的实现,而当需要自己定义通信协议的时候,就需要利用JDK提供的对U ...
- java获取网页编码_java根据URL获取网页编码
由于很多原因,我们要获取网页的编码(多半是写批量抓取的脚本吧...嘻嘻嘻) 注意: 如果你的目的是获取不乱码的网页内容(而不是根据网址发送post请求获取返回值),切记切记,移步这里 先说思路: 有三 ...
- JAVA零学习之基础归纳(十八)--网络编程、协议、IP、基本API、URL、socket等
[Java程序可以非常方便的访问互联网上的 HTTP服务.FTP服务等,并可以直接取得互联网上的远程资源,还可以向远程资源发送 GET.POST请求] 一.网络编程 1.1 网络概念和分类 所谓计算机 ...
- java版本不兼容_java 中jdk版本不兼容的问题小记
"Unsupported major.minor version 51.0"的错误信息. 原因:执行环境中的JRE版本与被执行代码的class文件不兼容,一本是因为编译Java代码 ...
- 【尚硅谷_java基础】十五、网络编程
文章目录 参考资料 1. 网络编程概述 2. 网络通信要素概述 2.1 如何实现网络中的主机互相通信 3. 通信要素1: IP和端口号 3.1 IP 地址: InetAddress 3.2 端口号 3 ...
- Java基础复习-八大基本数据类型-内存模型-基本算法-网络编程
Java基础 数据类型: 基本数据类型: 整数型:byte short int long(数值型) 浮点型: float double(数值型) 字符型:char 布尔型:boolean 引用数据类型 ...
- JAVA初学者如何实现基于UDP和TCP协议的网络编程
首先,我们需要先了解UDP协议.TCP协议的概念: 一.UDP协议:用户数据报协议,是一种无连接协议 二.TCP协议:文件传输协议,是一种面向连接的协议 他们都位于TCP/IP模型中的传输层,为整个网 ...
- java 下载url图片_java下载url图片链接
1.从之前写的一篇中改写了代码,从远程的url链接中下载图片,并对各种浏览器的中文文件名进行展示 /** * 根据url路径下载图片 * @param filename 处理下载时显示设置好的中文名 ...
- java调用远程 接口_java通过url调用远程接口返回json数据
java通过url调用远程接口返回json数据,有用户名和密码验证, 转自 https://blog.csdn.net/wanglong1990421/article/details/78815856 ...
最新文章
- Grunt安装中遇到的问题汇总
- JQuery添加扩展方法(理解$.extend(),与$.fn.extend()方法区别)
- Linux 上的高可用中间件
- Reactive Extensions for .NET (Rx)
- 数学建模第四节2020.4.24-5.3补
- 最短路最基本算法———Floyd算法
- 常用的函数式接口_Consumer接口的默认方法andThen
- 洛谷P2085ssl1411OJ1370-最小函数值【堆,贪心】
- 二级数据库access和mysql_二级数据库access和mysql
- android sdk shell,Android SDK命令行工具Monkey参数及使用解析
- endnote软件X9下载安装
- 黑客攻击入侵服务器的6种常见方式
- CorelDRAW X8 /CDR2020官方序列号密钥下载矢量绘图软件
- 转 vo、po、dto、bo、pojo、entity、mode如何区分
- 疯子、精神病患者、诗人、哲学家、伟大的思想家—— 尼采的孤独:《最孤独者》...
- javaweb课程设计:基于websocket的网络聊天室(所有的资源和代码还有详细步骤我都会提供)
- SSD固态硬盘测试工具收集(持续更新)
- 2022广东省安全员A证第三批(主要负责人)试题及模拟考试
- 【经验分享】Web前端开发测试常见问题总结
- 机器人python极客pdf_机器人Python极客编程入门与实战