`

三种URL连接方法

 
阅读更多
    Java的网络类可以让你通过网络或者远程连接来实现应用。而且,这个平台现在已经可以对国际互联网以及URL资源进行访问了。Java的URL类可以让访问网络资源就像是访问你本地的文件夹一样方便快捷。我们通过使用Java的URL类就可以经由URL完成读取和修改数据的操作。

     通过一个URL连接,我们就可以确定资源的位置,比如网络文件、网络页面以及网络应用程序等。其中包含了许多的语法元素。
   从URL得到的数据可以是多种多样的,这些都需要一种统一的机制来完成对URL的读取与修改操作。Java语言在它的java.net软件包里就提供了这么一种机制。

     URL class是从URL标示符中提取出来的。它允许Java程序设计人员打开某个特定URL连接,并对里边的数据进行读写操作以及对首部信息进行读写操作。而且,它还允许程序员完成其它的一些有关URL的操作。

 
构造

    在创建java.net URL的实例的时候,你能够利用许多公共构造器,从而让其变得更具灵活性。举个例子来说,这个class提供了一种使用完整URL信息串的构造器,一种使用把URL信息串分解成为协议、主机名以及文件和资源的构造器,还有一种把URL信息串分解成为协议、主机名、端口号以及文件的构造器。我们首先使用完整的URL来创建一个URL class的例子:

URL aURL = new URL(“http://www.mycompany.com:8080/index.html”);

在这个例子中,我们创建了一个使用完整URL的URL class,其中明确指出了使用的协议是http,主机名称是www.mycompany.com,端口号码为8080,文件/资源为index.html。如果组成URL的语法发生了错误,那么构造器就会发出MalformedURLException。

连接
  一旦你成功的创建了一个URL class的实例,你就可以对其进行操作了。但是在你能够访问这个URL上的资源和内容之前,你必须要打开到这些资源与内容上的连接。你可以通过使用openConnection来完成这一操作。

使用openConnection并不需要参数,并且在操作成功之后,它会返回一个URLConnection class的实例。在Listing A中,向我们演示了打开一个到URL连接的过程。一旦你的连接成功,你就可以开始对这个URLConnection的输入以及输出流进行读和写的操作了。

  从URL连接中读取数据

使用java.io stream class来从URL中读取数据是一个非常简单的过程。一旦你建立了一个成功的连接,那么你就可以获得针对这个连接的输入流并且开始进行写的操作了。很幸运的是,java.io classes可以以与对文件流或者socket流进行操作的同样方式进行对从URLConnection流返回的数据进行操作。

  对URL进行写的操作

使用java.io stream classes对URL进行写的操作同样也是非常简单的。一旦你建立了一个成功的连接之后,你就可以得到来自此连接的输出流并且开始进行写的操作。当然,只有对于客户所希望的数据进行写的操作才是有意义的。同样的,在获得并对URLConnection流进行写的操作之前,你还需要使用setDoOutput(boolean)方式把输出(Output)属性设置为真(true)来指定可以进行写操作的那些连接。Java.io classes允许你把数据写到URLConnection流,这个操作也和你对文件流和socket流进行的写操作一样。

  其它的操作

你可以从URL以及URLConnection对象连接中得到其它类型的信息,比如说主机名、端口、内容长度、内容编码以及内容的类型。把这些方法连同stream I/O classes一起使用可以让你建立复杂而有效的网络客户应用程序和服务。

  对网络的便捷访问

由Java平台所提供的URL class让我们可以方便而有效的访问网络上的资源,而且可以让我们象访问本地文件一样的感到轻松愉快。我们不用为网络通讯的细节问题操心,只需要把注意力集中到制作有用的应用程序和服务上去。

 
// 方法一 
           URL url = new URL("http://www.sina.com.cn");
           URLConnection urlcon = url.openConnection();
           InputStream is = urlcon.getInputStream();
          
            // 方法二
           URL url = new URL("http://www.yhfund.com.cn");
           HttpURLConnection urlcon = (HttpURLConnection)url.openConnection();
           InputStream is = urlcon.getInputStream();
          
           //方法三
           URL url = new URL("http://www.yhfund.com.cn");
           InputStream is = url.openStream();


long begintime = System.currentTimeMillis();
          
           URL url = new URL("http://www.yhfund.com.cn");
           HttpURLConnection urlcon = (HttpURLConnection)url.openConnection();
           urlcon.connect();         //获取连接
           InputStream is = urlcon.getInputStream();
           BufferedReader buffer = new BufferedReader(new InputStreamReader(is));
           StringBuffer bs = new StringBuffer();
           String l = null;
           while((l=buffer.readLine())!=null){
               bs.append(l).append("/n");
           }
           System.out.println(bs.toString());
          
           //System.out.println(" content-encode:"+urlcon.getContentEncoding());
           //System.out.println(" content-length:"+urlcon.getContentLength());
           //System.out.println(" content-type:"+urlcon.getContentType());
           //System.out.println(" date:"+urlcon.getDate());
                
           System.out.println("总共执行时间为:"+(System.currentTimeMillis()-begintime)+"毫秒");
        }catch(IOException e){
           System.out.println(e);
       }
    }
}


    /**    
    * 把输入流转换成字符数组    
    * @param inputStream   输入流    
    * @return  字符数组    
    * @throws Exception    
    */     
   public static byte[] readStream(InputStream inputStream) throws Exception {      
       ByteArrayOutputStream bout = new ByteArrayOutputStream();      
       byte[] buffer = new byte[1024];      
       int len = 0;      
       while ((len = inputStream.read(buffer)) != -1) {      
           bout.write(buffer, 0, len);      
       }      
       bout.close();      
       inputStream.close();      
    
       return bout.toByteArray();      
   }  

分享到:
评论

相关推荐

    JAVA中三种URL连接方法

    ### JAVA中三种URL连接方法详解 #### 引言 在JAVA编程中,处理网络资源的能力是必不可少的。通过JAVA的`java.net`包,开发者能够轻松地与远程服务器交互,获取或发送数据。本文将深入探讨JAVA中三种常见的URL连接...

    数据库连接池的三种实现方法

    在Java开发中,有三种常见的数据库连接池实现:DBCP(BasicDataSource)、C3P0以及阿里开源的Druid。下面将详细介绍这三种数据库连接池的实现原理和特性。 1. **DBCP (BasicDataSource)** DBCP 是 Apache Commons ...

    常用的几种数据库连接方法总结

    在本文中,我们将总结常用的几种数据库连接方法,以供开发者参考。 一、JDBC 连接 DB2 JDBC(Java Database Connectivity)是一种用于连接数据库的 Java API,通过 JDBC,我们可以连接不同的数据库管理系统。要...

    JNDI 三种连接数据库方法

    在本教程中,我们将深入探讨使用JNDI连接数据库的三种方法。 ### 1. 配置在应用服务器中的JNDI数据源 大多数企业级应用服务器(如Tomcat、JBoss、WebLogic等)都支持预配置的数据源,这些数据源可以通过JNDI名进行...

    URL 长连接变短链接的方法

    本篇文章将深入探讨在Android平台上实现URL长连接变短链接的几种方法。 首先,我们可以使用第三方服务,如Google的Firebase Dynamic Links (FDL)或Bitly。这些服务提供API,开发者可以调用API来缩短URL。例如,...

    常用的3种数据库连接方法

    本文将主要介绍三种常用的数据库连接方法:JDBC、JNDI和数据源(DataSource)。 一、JDBC连接方法 JDBC(Java Database Connectivity)是Java语言中用来连接数据库的一种标准化接口。JDBC连接方法是最基本的数据库...

    JAVA三种连接数据库的方法

    本文将详细介绍三种主流的Java数据库连接方法:JDBC(Java Database Connectivity)、JNDI(Java Naming and Directory Interface)以及ORM框架(如Hibernate、MyBatis)。 1. **JDBC连接** JDBC是Java语言访问...

    URL的三种获取内容的方式 java

    当我们需要从互联网上获取数据时,通常有三种主要的方法来获取URL所指向的内容。下面将详细介绍这些方法及其应用。 1. 使用`getContent()`方法: `getContent()`方法是`java.net.URL`类的一个成员,它可以直接尝试...

    连接数据库的几种方法

    这种方式是最常见的数据库连接方法之一,通常适用于简单的应用开发场景。下面我们将详细解释该方法的实现过程及其优缺点。 #### 实现过程 1. **加载驱动**:首先需要加载相应的数据库驱动。这一步是通过调用 `Class...

    Flex连接数据库三种方法

    Flex 连接数据库的方法主要涉及三种技术:HttpService、WebService 和 RemoteObject。这些技术都是 Flex 与后端服务器交互的手段,因为Flex本身并不具备直接访问数据库的能力,必须通过服务端代理来实现。 1. **...

    hibernate 配置连接池的三种方法

    【hibernate 配置连接池的三种方法】 在Java应用程序中,特别是在使用ORM框架如Hibernate进行数据库操作时,数据库连接池是必不可少的组件。它有效地管理数据库连接,提高应用程序性能,减少资源消耗。以下是对...

    hibernate配置数据库连接池的三种方法

    【hibernate配置数据库连接池的三种方法】 在软件开发中,数据库连接池是一种重要的资源管理工具,它能显著提高数据库操作的效率和性能。连接池通过预先创建并维护一定数量的数据库连接,使得应用程序在需要时可以...

    连接数据库的三种方法(详细)

    在IT领域,特别是软件开发与数据管理中,数据库的连接是至关重要的环节。本文将详细介绍在Java环境下连接数据库的三种常见方法,对于初学者来说,掌握...掌握这些数据库连接方法将为后续的数据库编程打下坚实的基础。

    连接各种数据库url和驱动器

    本文将根据给定的信息,详细介绍几种常见数据库(Oracle、MySQL等)的URL及驱动器配置方法。 ### 一、Oracle数据库 #### 1. 驱动器名称:`oracle.jdbc.driver.OracleDriver` Oracle数据库是甲骨文公司的一款关系...

    用于保存URL连接的命令

    ### 用于保存URL连接的命令知识点详解 #### 一、标题理解:用于保存URL连接的命令 本标题指向了一个特定的计算机操作场景——通过编写简单的脚本来实现对URL链接的管理和自动化访问。在日常生活中,我们经常会遇到...

    URL以及URLConnection的使用

    理解URL的各个组成部分后,我们可以通过`openConnection()`方法获取到与该URL对应的URLConnection对象,它是`java.net.URLConnection`类的实例。URLConnection是Java中连接网络资源的基础,它可以用于读取、写入或...

    JDBC连接数据库方法文档

    JDBC 连接数据库方法...JDBC 连接数据库的方法可以分为四个步骤:加载 JDBC 驱动程序、提供 JDBC 连接的 URL、创建数据库的连接、创建一个 Statement。通过这四个步骤,开发者可以轻松地连接数据库并执行 SQL 语句。

Global site tag (gtag.js) - Google Analytics