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所指定的资源文件。
最新文章
- win10系统下连接无线网络掉线问题解决办法
- Android注解使用之使用Support Annotations注解优化代码
- 远程登录VirtualBox虚拟机Linux
- request response
- 【Other】Ubuntu 14.04 pptp 客户端连接配置
- 【jquery】:表单返回信息
- java(课程设计之记事本界面部分代码公布)
- 一句话改变TGraphicControl控件的left坐标的前世今生
- PS5穿越云层3D文字
- Linux - create usergroup, user and Assigning permissions
- winDbg 命令使用帮助
- 菲菲更名宝贝(批量更名软件) v8.0 绿色版
- Cobbler自动化部署最佳实践
- 学习笔记-express路径问题
- CentOS 7.6 使用kubeadm安装Kubernetes 13
- sql笔试题
- 二分法bug修复
- 原生js手动轮播图
- maven项目报错xxx cannot be resolved to a type
- git ssh免登陆,以及ssh config
热门文章
- ToString(string format)输出格式简述
- 矩阵中的路径 剑指offer65题
- IOS项目开发中的文件和文件夹操作
- hdu5795 A Simple Nim 求nim求法,打表找sg值规律 给定n堆石子,每堆有若干石子,两个人轮流操作,每次操作可以选择任意一堆取走任意个石子(不可以为空) 或者选择一堆,把它分成三堆,每堆不为空。求先手必胜,还是后手必胜。
- UVA - 11584 划分字符串的回文串子串; 简单dp
- OC 内存管理-01
- CentOS 6.5 Git源码安装
- jQuery + Cookie引导客户操作
- 图像sift配准后融合
- CAFFE学习笔记(五)用caffe跑自己的jpg数据