疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

Java访问网络url,获取网页的html代码


 

   在Java中,Java.net包里面的类是进行网络编程的,其中,java.net.URL类和java.net.URLConection类是编程者方便地利用URL在Internet上进行网络通信。有两种方法可以用来访问Internet。

  一是使用URL类的openStream()方法:

  openStream()方法与制定的URL建立连接并返回InputStream类的对象,以从这一连接中读取数据;

  openStream()方法只能读取网络资源。

  二是使用URL类的openConnection()方法:

  openConnection()方法会创建一个URLConnection类的对象,此对象在本地机和URL指定的远程节点建立一条HTTP协议的数据通道,可进行双向数据传输。类URLConnection提供了很多设置和获取连接参数的方法,最常用到的是getInputStream()和getOutputStream()方法。

  openConnection()方法既能读取又能发送数据。

  下面通过两个例子分别介绍两种方法:

  1.openStream()方法访问Internet

  下面的例子实现了访问http://www.baidu.com,获取其html代码:

  public class URLTest2 {

  public static void main(String args[]) throws Exception {

  try {

  URL url = new URL("http://www.baidu.com");

  InputStream in =url.openStream();

  InputStreamReader isr = new InputStreamReader(in);

  BufferedReader bufr = new BufferedReader(isr);

  String str;

  while ((str = bufr.readLine()) != null) {

  System.out.println(str);

  }

  bufr.close();

  isr.close();

  in.close();

  } catch (Exception e) {

  e.printStackTrace();

  }

  }

  }

  上例首先创建对象url,并通过url.openStream()方法打开输入流获取InputStreamReader对象,再由此对象创建BufferedReader对象bufr,从bufr中读取数据即可得到url所指定的资源文件。

  2.openConnection()方法访问Internet

  下面的例子实现了访问http://www.baidu.com,获取其html代码:

  public class URLTest {

  public static void main(String[] args) {

  try {

  URL url = new URL("http://www.baidu.com");

  URLConnection URLconnection = url.openConnection();

  HttpURLConnection httpConnection = (HttpURLConnection) URLconnection;

  int responseCode = httpConnection.getResponseCode();

  if (responseCode == HttpURLConnection.HTTP_OK) {

  System.err.println("成功");

  InputStream in = httpConnection.getInputStream();

  InputStreamReader isr = new InputStreamReader(in);

  BufferedReader bufr = new BufferedReader(isr);

  String str;

  while ((str = bufr.readLine()) != null) {

  System.out.println(str);

  }

  bufr.close();

  } else {

  System.err.println("失败");

  }

  } catch (Exception e) {

  e.printStackTrace();

  }

  }

  }

  上例首先创建对象url,并通过url.openConnection()方法获取URLConnection对象,并转换成HttpURLConnection对象,再由此对象的getInputStream()方法打开输入流获取InputStreamReader对象,然后由此对象创建BufferedReader对象bufr,从bufr中读取数据即可得到url所指定的资源文件。