`
uule
  • 浏览: 6350565 次
  • 性别: Icon_minigender_1
  • 来自: 一片神奇的土地
社区版块
存档分类
最新评论

获取URL指定的资源

阅读更多
URL url = new URL(url);

获取URL指定的资源
1、url.getContent();
2、url.openConnection().getInputStream()
3、url.openStream()
 

 

java.net.URL提供了丰富的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对象的构建

    方式很多,可以看看JDK文档。

    三、获取URL指定的资源

    下面给个例子,说明如何获取到指定的资源。

 

import java.io.*;
import java.net.URL;
import java.net.URLConnection;

public class TestURL {
        public static void main(String[] args) throws IOException {
                test4();
                test3();
                test2();
                test();
        }

        /**
         * 获取URL指定的资源。
         *
         * @throws IOException
         */
        public static void test4() throws IOException {
                URL url = new URL("http://lavasoft.blog.51cto.com/attachment/200811/200811271227767778082.jpg");
                //获得此 URL 的内容。
                Object obj = url.getContent();
                System.out.println(obj.getClass().getName());
        }

        /**
         * 获取URL指定的资源
         *
         * @throws IOException
         */
        public static void test3() throws IOException {
                URL url = new URL("http://www.hrtsea.com/down/soft/45.htm");
                //返回一个 URLConnection 对象,它表示到 URL 所引用的远程对象的连接。
                URLConnection uc = url.openConnection();
                //打开的连接读取的输入流。
                InputStream in = uc.getInputStream();
                int c;
                while ((c = in.read()) != -1)
                        System.out.print(c);
                in.close();
        }

        /**
         * 读取URL指定的网页内容
         *
         * @throws IOException
         */
        public static void test2() throws IOException {
                URL url = new URL("http://www.hrtsea.com/down/soft/45.htm");
                //打开到此 URL 的连接并返回一个用于从该连接读入的 InputStream。
                Reader reader = new InputStreamReader(new BufferedInputStream(url.openStream()));
                int c;
                while ((c = reader.read()) != -1) {
                        System.out.print((char) c);
                }
                reader.close();
        }

        /**
         * 获取URL的输入流,并输出
         *
         * @throws IOException
         */
        public static void test() throws IOException {
                URL url = new URL("http://lavasoft.blog.51cto.com/62575/120430");
                //打开到此 URL 的连接并返回一个用于从该连接读入的 InputStream。
                InputStream in = url.openStream();
                int c;
                while ((c = in.read()) != -1)
                        System.out.print(c);
                in.close();
        }
}

    四、Java所支持的URL类型

import java.net.URL;

public class MainClass {

        public static void main(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 (int i = 0; i < schemes.length; i++) {
                        try {
                                URL u = new URL(schemes[i], host, file);
                                System.out.println(schemes[i] + " is supported\r\n");
                        } catch (Exception ex) {
                                System.out.println(schemes[i] + " is not supported\r\n");
                        }
                }
        }
}

 来源:http://training.tsinghua.edu.cn/html/jishuyuandi/2009/0302/49.html

分享到:
评论

相关推荐

    正则+url获取指定网站数据信息

    本篇将详细讲解如何利用Java编程语言,结合正则表达式和URL来获取指定网站的数据信息。 首先,我们需要了解URL。URL是互联网上资源的唯一地址,它包含了协议类型(如http或https)、服务器地址、路径以及可能的查询...

    获得指定的url在缓存中的路径(3KB)

    标题中的“获得指定的url在缓存中的路径”是一个关于计算机编程的问题,特别是与网络请求和数据缓存相关的。在互联网应用中,浏览器或者其他HTTP客户端通常会缓存从服务器获取的资源,比如HTML页面、图片、...

    通过url获取网络位置上的文件流

    在Java编程中,有时我们需要从网络上的某个URL下载文件,特别是在处理远程资源时。这个过程通常涉及将URL转换为文件流,以便我们可以读取、处理或保存这些远程数据。以下是一个详细的知识点介绍,关于如何在Java中...

    通过JAVA语言实现使用URL访问网络资源

    `URL`类提供了多种构造方法来创建URL对象,这些方法允许以不同的形式指定URL的各个组成部分。 - `public URL(String spec)`:通过一个包含协议、主机名、端口和文件名的字符串来创建URL。 - `public URL(URL ...

    获得指定Url的HTML页面

    在IT领域,获取指定URL的HTML页面是一项基本且重要的任务,尤其在网页抓取、数据分析、网络监控等应用场景中极为常见。以下是从标题、描述、标签以及部分内容中提炼出的关键知识点,旨在深入解析如何通过模拟...

    PB9调用指定浏览器打开URL的DEMO

    这个DEMO展示了如何在PB9环境下通过编程的方式调用指定的浏览器来打开一个URL。下面将详细介绍这个知识点。 首先,理解PB9的编程基础是必要的。PowerBuilder使用面向对象的编程模型,支持事件驱动和数据窗口等特性...

    JAVA通过url获取网页内容

    通过使用 URL 类和 URLConnection 类,Java 程序可以连接到远程服务器,获取指定 URL 的内容。本文将详细介绍如何使用 Java 通过 URL 获取网页内容。 一、使用 URL 类获取网页内容 在 Java 中,URL 类是用于表示...

    servlet获取url相关参数

    - 查询字符串可以通过`HttpServletRequest.getParameter(String name)`来获取指定参数的值,如`req.getParameter("d")`将返回`789`。对于多个同名参数,可以使用`getParameterValues(String name)`获取一个字符串...

    根据url来获取页面的截图

    首先,我们需要理解`URL`(统一资源定位符)是互联网上的资源的唯一地址。通过URL,我们可以访问网页、下载文件或进行各种网络操作。在Java中,我们可以使用`java.net.URL`类来处理和解析URL。 接下来,`awt`是Java...

    (JS获取地址栏url所有信息的方法

    ### JS获取地址栏URL所有信息的方法 在Web开发过程中,经常需要从URL中提取有用的信息。这不仅可以帮助我们更好地理解用户是如何访问网站的,还可以利用这些信息进行个性化内容展示、统计分析等多种操作。本文将...

    js获取url参数

    URL(Uniform Resource Locator)即统一资源定位符,用于标识互联网上的资源位置。一个典型的URL由多个部分组成:协议类型(如http、https)、域名、路径以及查询字符串等。其中,查询字符串是位于URL中的问号(?)...

    AS语言获取url参数的说明

    路径是指定资源的具体位置,可以通过`window.location.pathname`获取。例如: ```as var path:String = ExternalInterface.call("eval", "window.location.pathname"); ``` 这段代码将返回路径部分,例如`/windows...

    C# WPF 通过FFmpeg 获取URL视频的播放时长

    FFmpeg解析视频,合并都可以,本项目只是用来获取视频长度,有点大材小用,但是目前能获取在线视频长度的资源的确是不多。VLC也是可以获取在线URL视频长度的,但是VLC有的在线视频也获取不到时长,这是补充方案,...

    一个简单的获取URL 数据方法,附文档代码

    本文将详细介绍一种简单有效的方式:通过Java语言编写一个类来获取指定URL的数据,并对该方法进行深入解析。 #### 一、背景介绍 在实际项目中,经常需要从网络上抓取数据,例如爬虫程序、数据同步等场景。本篇介绍...

    ABAP url下载文件

    根据提供的文件信息,本文将详细解释 ABAP 中通过 URL 下载文件的相关知识点,包括 ABAP 程序中实现此功能的基本步骤和技术要点。 ### ABAP URL 文件下载概述 ABAP(Advanced Business Application Programming)...

    java 通过指定的URL可以获取网页的源代码

    首先,我们需要使用`java.net.URL`类来创建一个URL对象,它代表了网络上的一个资源。例如,如果你想要获取的网页URL是"http://example.com",你可以这样创建URL对象: ```java URL url = new URL(...

    例10.02 使用字节流访问URL资源.rar_url

    通过创建一个URL对象,我们可以获取到指定URL的连接。例如: ```java URL url = new URL("http://example.com/resource"); ``` 接着,使用`openConnection()`方法建立到该URL的连接: ```java URLConnection ...

    获得指定的url在缓存中的路径(3KB)...

    在标题“获得指定的url在缓存中的路径(3KB)”中,我们可以理解为这是一个小巧但功能强大的程序,它能够检索到浏览器或者其他HTTP客户端下载的网页或资源在本地计算机上的缓存位置。这个3KB的小程序可能包含了核心的...

    编写ocx时如何通过url获取资源信息(图片等)

    ### 编写OCX时如何通过URL获取资源信息(图片等) #### 背景介绍 在现代Web应用开发中,OCX(Object Linking and Embedding Container)控件作为一种重要的扩展工具,常被用于增强浏览器的功能,比如提供多媒体...

    JS获取地址栏url所有信息的方法

    6. 获取 URL 的查询部分:使用 `window.location.search` 可以获取 URL 的查询部分,用于给动态语言赋值以外,我们同样可以给静态页面,并使用 JavaScript 来获得相应的参数值。 例子:`?utm_medium=bb&utm_source=...

Global site tag (gtag.js) - Google Analytics