java网络编程: URL 和 RULConnection

来源:互联网 发布:tas软件下载 编辑:程序博客网 时间:2024/05/20 16:33

一:URL

URL(Uniform Resource Locator) 统一资源定位符,可以直接使用此类找到互联网上的资源(如一个简单的网页)。

范例1:

    package haizhu.com.InetDemo;            import java.io.InputStream;      import java.net.URL;      import java.util.Scanner;            public class URLDemo {          public static void main(String[] args) throws Exception{              URL url = new URL("http","www.mldnjava.cn",80,"/curriculum.htm");           // 指定操作的URL              InputStream input = url.openStream();                                       // 打开输入流,读取URL内容              Scanner scan = new Scanner(input);                                          // 实例化Scanner 对象              scan.useDelimiter("\n");                                                    // 设置读取分隔符              while(scan.hasNext()){                                                      // 不断读取内容                  System.out.println(scan.next());                                        // 输出内容              }          }      }  

使用URL 找到指定主机上的 curriculum.htm 页面资源,并使用Scanner 将页面中的内容下载下来直接显示在屏幕上。

二:URLConnection

URLConnection 是封装访问远程网络资源一般方法的类,通过它可以建立于远程服务器的链接,检查远程资源的一些属性。

URLConnection 对象可以通过openConnection() 方法取得,下面通过URLConnection 对象取得一个 URL 的基本信息:

范例2:

    package haizhu.com.InetDemo;            import java.net.URL;      import java.net.URLConnection;            public class URLConnectionDemo {          public static void main(String[] args) throws Exception{              URL url = new URL("http://www.mldnjava.cn");                    // 指定操作的 URL               URLConnection urlCon = url.openConnection();                    // 简历连接              System.out.println("内容大小:"+urlCon.getContentLength());          // 取得内容大小              System.out.println("内容类型:"+urlCon.getContentType());            // 取得内容类型          }      }  

2.URL和URLConnection类

网络中的URL(Uniform Resource Locator)是统一资源定位符的简称。它表示Internet上某一资源的地址。通过URL我们可以访问Internet上的各种网络资源,比如最常见的WWW,FTP站点。 URL可以被认为是指向互联网资源的“指针”,通过URL可以获得互联网资源相关信息,包括获得URL的InputStream对象获取资源的信息,以及一个到URL所引用远程对象的连接URLConnection。 URLConnection对象可以向所代表的URL发送请求和读取URL的资源。通常,创建一个和URL的连接,需要如下几个步骤:

  1. 创建URL对象,并通过调用openConnection方法获得URLConnection对象;
  2. 设置URLConnection参数和普通请求属性;
  3. 向远程资源发送请求;
  4. 远程资源变为可用,程序可以访问远程资源的头字段和通过输入流来读取远程资源返回的信息。
这里需要重点讨论一下第三步:如果只是发送GET方式请求,使用connect方法建立和远程资源的连接即可;如果是需要发送POST方式的请求,则需要获取URLConnection对象所对应的输出流来发送请求。这里需要注意的是,由于GET方法的参数传递方式是将参数显式追加在地址后面,那么在构造URL对象时的参数就应当是包含了参数的完整URL地址,而在获得了URLConnection对象之后,就直接调用connect方法即可发送请求。而POST方法传递参数时仅仅需要页面URL,而参数通过需要通过输出流来传递。另外还需要设置头字段。以下是两种方式的代码:

//1. 向指定URL发送GET方法的请求 String urlName = url + "?" + param;  URL realUrl = new URL(urlName);  //打开和URL之间的连接 URLConnection conn = realUrl.openConnection();  //设置通用的请求属性 conn.setRequestProperty("accept", "*/*");  conn.setRequestProperty("connection", "Keep-Alive");  conn.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");  //建立实际的连接 conn.connect();      //2. 向指定URL发送POST方法的请求 URL realUrl = new URL(url);  //打开和URL之间的连接 URLConnection conn = realUrl.openConnection();   //设置通用的请求属性 conn.setRequestProperty("accept", "*/*");  conn.setRequestProperty("connection", "Keep-Alive");  conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");   //发送POST请求必须设置如下两行 conn.setDoOutput(true);  conn.setDoInput(true);  //获取URLConnection对象对应的输出流 out = new PrintWriter(conn.getOutputStream());  //发送请求参数 out.print(param);



0 0