在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所指定的资源文件。

Java访问网络url,获取网页的html代码的更多相关文章

  1. Java 网络爬虫获取网页源代码原理及实现

    Java 网络爬虫获取网页源代码原理及实现 1.网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成.传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL ...

  2. java根据URL获取网页编码

    由于很多原因,我们要获取网页的编码(多半是写批量抓取的脚本吧...嘻嘻嘻) 注意: 如果你的目的是获取不乱码的网页内容(而不是根据网址发送post请求获取返回值),切记切记,移步这里 java根据UR ...

  3. Java 中 利用正则表达式 获取 网页图片

    import java.io.File;import java.io.FileOutputStream;import java.io.InputStream;import java.net.URL;i ...

  4. java 从网络Url中下载文件 (转)

    http://blog.csdn.net/xb12369/article/details/40543649/ /**       * 从网络Url中下载文件       * @param urlStr ...

  5. java 从网络Url中下载文件

    转自:http://blog.csdn.net/xb12369/article/details/40543649 /** * 从网络Url中下载文件 * @param urlStr * @param ...

  6. PHP CURL或file_get_contents获取网页标题的代码及两者效率的稳定性问题

    PHP CURL与file_get_contents函数都可以获取远程服务器上的文件保存到本地,但在性能上面两者完全不在同一个级别,下面我先来介绍PHP CURL或file_get_contents函 ...

  7. wemall app商城源码中基于JAVA通过Http请求获取json字符串的代码

    wemall-mobile是基于WeMall的Android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.分享其中关于通过Http请求获取json字符串的代码供 ...

  8. iOS项目开发实战——iOS网络编程获取网页Html源码

    现在我们身处互联网的时代.不论什么一个软件或是App,都会或多或少与网络打交道,并不断发生数据交互.一个没有涉及网络编程的应用会显得比較low,这里我们将会開始使用Swift开发iOS应用,而且主要来 ...

  9. java爬虫--使用正则表达式获取网页中的email

    package com.enation.newtest; import java.io.*; import java.util.regex.*; import java.net.*; public c ...

随机推荐

  1. tic-tac-toe游戏代码

    package com.p4f.tictactoe.demo; import javax.swing.border.Border; public class Board { /** * positio ...

  2. ini_set() php.ini设置的功能

    ini_set()具有更改php.ini设置的功能.此函数接收两个参数:需要调整的配置变量名,以及变量的新值. [c-sharp] view plaincopyprint? <?php ini_ ...

  3. D. Powerful array 离线+莫队算法 给定n个数,m次查询;每次查询[l,r]的权值; 权值计算方法:区间某个数x的个数cnt,那么贡献为cnt*cnt*x; 所有贡献和即为该区间的值;

    D. Powerful array time limit per test seconds memory limit per test megabytes input standard input o ...

  4. \sum的写法

    \sum默认上下标是写在右上角和右下角的.在独立公式中,则是写在上面和下面的.对于行内公式,我们也可以强制用\limits让其上下表标出现在上面和下面.Note:\sum\nolimits的作用相当于 ...

  5. 视频输出hdtv和sdtv

    SDTV和HDTV人们分别把它们叫标准清晰度数字电视和高清晰度数字电视,SDTV电视节目很早在欧洲就开始广播,如,DVB-S(卫星数字视频广播).DVB-C(有线数字视频广播).DVB-T(地面数字视 ...

  6. MFC 资源记录

    MFC的RC文件中,定义很多中资源,每种资源具体是如何定义的,资源文件中各种符号都是什么意义? LTEXT           "A&xis:",IDC_STATIC,12 ...

  7. Asp.Net 无刷新文件上传并显示进度条的实现方法及思路

    相信通过Asp.Net的服务器控件上传文件在简单不过了,通过AjaxToolkit控件实现上传进度也不是什么难事,为什么还要自己辛辛苦苦来 实现呢?我并不否认”拿来主义“,只是我个人更喜欢凡是求个所以 ...

  8. es6 async与await实战

    在使用js的时候,我们经常会遇到一个问题,就是我们需要等待请求返回再做下一步处理,之前的处理方式是通过ajax的success或者callback之类的方法,不过一层一层真的恶心,而且只是针对单个页面 ...

  9. 制作dos启动u盘

    需要准备的工具: 空U盘的U盘HP优盘启动盘格式化工具 链接:https://pan.baidu.com/s/1i59wgUp 密码:l5ke 1.1插入U盘,打开   HP优盘启动盘格式化工具 1. ...

  10. 从设计到实现,一步步教你实现Android-Universal-ImageLoader-缓存

    转载请标明出处,本文出自:chaossss的博客 Android-Universal-ImageLoader Github 地址 Cache 我们要对图片进行缓存.有两种方式:内存缓存和本地缓存. 这 ...