private static void getDataFromURL() throws MalformedURLException, IOException
{
// System.getProperties().put("http.proxyHost", "someProxyURL");
// System.getProperties().put("http.proxyPort", "someProxyPort");
URL url = new URL("http://liuxi1024.iteye.com/blog/519047");
HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
// 设置用户代理头字段,不然iteye.com站点不会给我们返回数据
httpConn.addRequestProperty("User-Agent", "Mozilla");
httpConn.connect();
// 获得所有响应头
Map<String, List<String>> headers = httpConn.getHeaderFields();
for (String key : headers.keySet())
{
System.out.println(key + ": " + headers.get(key));
if ("Content-Type".equalsIgnoreCase(key))
{
List<String> values = headers.get(key);
System.out.println("Found: " + values);
String contentType = values.get(0);
String[] parts = contentType.split(";");
String charset = "";
if (parts.length > 1)
{
charset = parts[1].trim();
charset = charset.substring(charset.lastIndexOf("=") + 1);
}
System.out.println("Charset: " + charset);
}
}
// 获得输入流
InputStream in = httpConn.getInputStream();
int data = 0;
while (-1 != (data = in.read()))
System.out.write(data);
System.out.flush();
in.close();
}
private static void getResource2() throws URISyntaxException
{
// URI 统一资源标识符 用于标识一个资源,只要用于资源的解析操作
// URL 统一资源定位符 用于定位一个资源,不仅可以用于解析资源,还可以获取一个资源的内容
URL url = URLOrURI.class.getResource("tu hao.txt");
// 结果:file:/C:/xxx/workspace/classloader/bin/com/classloader/tu%20hao.txt
// 会将返回结果中的空格、非ascii码字符进行转义
System.out.println(url);
URI uri = url.toURI();
// 结果:/C:/xxx/workspace/classloader/bin/com/classloader/tu hao.txt
// 如果要获得转义前的字符串,可以调用url的toURI获得对应的URI,然后调用getPath即可
// URI的getPath方法会将结果字符串进行解码
System.out.println(uri.getPath());
// 结果:file:/C:/xxx/workspace/classloader/bin/com/classloader/%e5%9c%9f%e8%b1%aa.txt
url = URLOrURI.class.getResource("土豪.txt");
System.out.println(url);
}
private static void getResource()
{
URL url = URLOrURI.class.getResource("/");
// 结果:file:/C:/xxx/workspace/classloader/bin/ 相对classpath根目录
// 如果classpath中还有其他目录存在当前项目的classes目录之前,
// 则会优先返回其他目录
// 由于class.getResource真正调用的是classloader.getResource,
// 而classloader.getResource又会委托给父classloader去查找resource
// 所以如果java/jdk**/jre下存在一个classes目录,
// 这个方法会返回java/jdk**/jre/classes目录
System.out.println(url);
url = URLOrURI.class.getResource("");
// 结果:file:/C:/xxx/workspace/classloader/bin/com/classloader/ 相对当前包目录
System.out.println(url);
url = URLOrURI.class.getClassLoader().getResource("");
// 结果:file:/C:/xxx/workspace/classloader/bin/ 相对classpath根目录
System.out.println(url);
url = URLOrURI.class.getClassLoader().getResource("/");
// 结果:null
System.out.println(url);
}
分享到:
相关推荐
### URL和URI使用指南 #### 一、引言 在当今互联网时代,了解如何通过URL(Uniform Resource Locator,统一资源定位符)和URI(Uniform Resource Identifier,统一资源标识符)来获取网络上的数据至关重要。本指南...
### URI与URL的基础概念 #### 一、URI(Uniform ...- **总结**:在日常使用中,人们经常将URL和URI这两个术语互换使用,但在技术上,它们有着明确的区别。理解这些概念对于正确地使用和构建互联网资源至关重要。
在C++程序中,与URI和URL相关的任务通常涉及字符串操作,而Boost.URL库则为这些任务提供了高级抽象,避免了底层的字符串处理复杂性。 Boost.URL库的核心功能包括: 1. **解析**: Boost.URL库可以将一个完整的URL...
二、URI和URL的区别及关系 简而言之,URI是标识某一个资源,而URL用位置来标识一个资源。 一、URI、URL和URN Web上地址的基本形式是URI,它有多种形式:常见的有URL和URN。 URI = Universal Resource Identifier ...
URI(Uniform Resource Identifier)和URL(Uniform Resource Locator)是互联网上资源定位的两种重要概念,它们之间存在着密切的关系,但又有明显的区别。 URI是统一资源标识符,它是一个全局唯一的字符串,用于...
在探讨“URI和URL区别”这一主题时,我们首先需要明确这两个概念的基本定义与功能,进而深入理解它们之间的差异以及在互联网技术中的具体应用。URI(Uniform Resource Identifier,统一资源标识符)和URL(Uniform ...
URI(Uniform Resource Identifier)和URL(Uniform Resource Locator)是互联网上资源定位的两种重要概念。它们虽然在功能上有所重叠,但有着明确的区别。 首先,URI,统一资源标志符,是一个抽象的概念,用于唯一...
本文详细介绍了HTML中的字符实体及其重要性,解释了URL的概念、格式与区分URL和URI的关系。此外还探讨了语义化标记的优势,比如维护代码简便性和降低交流的成本,同时对于SEO优化进行了基本概述。 适合人群:初学...
在Java中,URI和URL被分别封装在`java.net.URI`和`java.net.URL`类中。URI 类是一个抽象的概念,主要用于解析和表示URI,但不涉及网络访问。它支持相对URI,并且更加符合相关规范。而URL类则更偏向于实际的网络操作...
一、URL和URI * URL(Uniform Resource Locator)称为统一资源定位符,通常由四部分组成:协议名称、页面所在主机的DNS名、可选的端口号和资源的名称。 * URI(Uniform Resource Identifier)称为统一资源标识符,...
在Java中,URI和URL是两个不同的类,都位于java.net包下。URI类更加抽象,主要用于资源的标识和解析,不涉及实际的资源访问。URL类则提供了对资源的实际访问能力,它可以用来打开网络连接,下载或上传数据。URI类在...
Java网络编程是Java开发中的重要领域,它涵盖了各种网络通信技术,包括TCP和UDP套接字编程、URL和URI的理解以及如何实现一个实用的下载程序。让我们深入探讨这些主题。 首先,TCP(传输控制协议)是一种面向连接的...
1. URL 和 URI 的区别: URL(Uniform Resource Locator)称为统一资源定位符,通常由四部分组成:协议名称、页面所在主机的 DNS 名、可选的端口号和资源的名称。URI(Uniform Resource Identifier)称为统一资源...
对java网络编程里的URL、URI研究,如果需要我也可以将研究上篇传上来
= : 表示精确的URI匹配(有兴趣的同学可以看一下url和uri的区别) ~: 表示区分大小写的正则匹配 ~*:表示不区分大小写的正则匹配 !~ && !~*:表示区分大小写不匹配的正则和不区分大小写的不匹配的正则 /:通用匹配...
- **创建和解析URI**:Uri库允许通过字符串或数组创建URI实例,并能解析出各个部分,如scheme(协议)、authority(授权部分,包括用户信息、主机和端口)、path(路径)、query(查询字符串)和fragment(片段...
Java路径问题在编程中是一个常见的挑战,特别...总的来说,处理Java路径问题需要深入理解URL、URI和File类的特性,以及它们在不同场景下的行为差异,同时要注意编码和解码的正确性,确保路径在各种操作中都能正确解析。
URI是互联网上资源的全局唯一标识,包括URL(统一资源定位符)和URN(统一资源名称)。RFC 3986详述了URI的组成部分,包括: 1. **scheme**:如http、https、ftp等,表示资源的获取方式。 2. **authority**:通常...
本书重点介绍了JDK 1.4和1.5(即J2SE 5)中的网络API更新,包括TCP和UDP socket、服务器socket、URL和URI处理、组播、以及特殊用途的API如JavaMail。它不仅讲解API,还通过丰富的示例代码展示了API的实际应用,涉及...