当前课程知识点:JAVA程序设计进阶 > 第四章 网络编程(上) > 4.2 URLConnection对象 > Video
这一节我们将介绍URLConnection对象
那这个对象是代表了java
和互联网资源上的一个访问链接
这个类也是java.net这个包的一个类
一个URLConnection对象
代表了一个URL资源
与java呈现的通讯连接
可以通过它对这个URL资源
进行读或者写
这个和刚才我们见到的URL
那个类有什么不同
第一个不同是一个是单向一个是双向
也就是说URL是单向的
我们写程序的时候
通过构造这个URL这个对象的话
我们只能去访问这个对象
也就是把它的内容读过来
但是URLConnection是个双向的
它还可以发送一些信息
也就是说我们的java程序
能够发送一些信息
给我们这个目标的这个资源
那另外的区别是URLConnection
可以察看服务器的响应消息的
这个首部
以及可以设置客户端请求信息的首部
这些都是URLConnection
与URL不同的地方
那我们怎么来使用URLConnection
来进行通信呢
它的一般步骤是这样的
我们构造一个URL对象
然后让URL对象的openConnection方法
获得对应的URLConnection对象
那我们再配置这个URLConnection对象
读取它的首部的字段
紧接着我们可以获得输入流
输入流的目的是为了读取数据
也就是从远程的这个URL资源中
把数据给读到我们的java程序中
那另外一个是我们要获得输出流
那获得输出流的目的
就是让我们的java程序
能够发送一些信息给远程的URL资源
那最后的话
当我们输入输出都使用完了以后
我们就要必须关闭这个连接
下面我们看一下这个例子
通过URLConnection
我们一样可以读写WWW资源
比如说我们就拿它来读写
新浪的这个资源
那这个例子当中前两行
大家都认识了
都是导入我们java.net这个包
和java.io这个包
然后紧接着我们对应着
class URLConnector
我们看它的主方法
主方法里面try
然后URL.cs=newURL
然后我们给它一个目标的这个网站
紧接着我们通过这个URL对象
就是cs调用它的openConnection
这个方法
通过这个方法它就会返回一个
URLConnection的对象
然后我们把它赋值给tc
紧接着我们利用这个tc对象
获得它的输入流
就是tc.getInputStream
或者它输入流后
我们外面又包上了另外一个流
InputStreamReader
然后在InputStreamReader外面
又包上了一个Buffered
那Buffered就是待缓冲的输入流
那我们构造一个Buffered的对象in
那通过这个对象的话
后面我们就可以进行这个信息的读取了
那怎么读取呢
我们马上定义一个字符串对象inputline
while InputLine=in.read不等于空
就是我们这个输入流
readLine就是一行一行的读
如果一直没读完
那就把这个值赋给我们的inputLine
那inputLine的话再把它打印出来
那这样我们就可以把所有的这些
互联网上的资源
都给它读到我们的java程序当中
读完了以后
我们就关闭这个流 就用in.close
当然在所有这些处理过程当中
我们还进行了捕获异常的操作
比如说catch
这个Malformed URLException e
然后我们在里面打印出
这个是Malformed URLException
就是属于这个URL地址解析不了
另外我们还捕获了LException
那同样是这个程序
是可以把我们互联网上的资源的内容
给它获取过来的
所以这个例子当中
也是把新浪的内容读取到
我们的java程序当中
这一节我们通过介绍URLConnection对象
来访问互联网上的资源
比如说可以把新浪网的网页
都给它抓取下来
-1.0 导学
--Video
-1.1 线程的基本概念
--Video
-1.1 线程的基本概念--作业
-1.2 通过Thread类创建线程
--Video
-1.2 通过Thread类创建线程--作业
-1.3 线程的休眠
--Video
-1.3 线程的休眠--作业
-1.4 Thread类详解
--Video
-1.5 通过Runnable接口创建线程
--Video
-1.5 通过Runnable接口创建线程--作业
-1.6 线程内部的数据共享
--Video
-2.0 导学
--Video
-2.1 线程同步的思路
--Video
-2.2 线程同步的实现方式—Synchronization
--Video
-2.3 线程的等待与唤醒
--Video
-2.4 后台进程
--Video
-2.5 线程的生命周期与死锁
--Video
-2.6 线程的调度
--Video
-3.0 导学
--Video
-3.1 线程安全与线程兼容与对立
--Video
-3.2 线程的安全实现-互斥同步
--Video
-3.3 线程的安全实现-非阻塞同步
--Video
-3.4 线程的安全实现-无同步方案
--Video
-3.5 锁优化
--Video
-4.0 导学
--Video
-4.1 URL对象
--Video
-4.2 URLConnection对象
--Video
-4.3 Get请求与Post请求
--Video
-4.4 Socket通信原理
--Video
-4.5 Socket通信实现
--Video
-5.0 导学
--Video
-5.1 Socket 多客户端通信实现
--Video
-5.2 数据报通信
--Video
-5.3 使用数据报进行广播通信
--Video
-5.4 网络聊天程序
--Video
-6.0 导学
--Video
-6.1 Java虚拟机概念
--Video
-6.2 Java虚拟机内存划分
--Video
-6.3 Java虚拟机类加载机制
--Video
-6.4 判断对象是否存活算法及对象引用
--Video
-6.5 分代垃圾回收
--Video
-6.6 典型的垃圾收集算法
--Video
-6.7典型的垃圾收集器
--Video
-7.0 导学
--Video
-7.1 集合框架与ArrayList
--Video
-7.2 LinkedList
--Video
-7.3 HashMap与HashTable
--Video
-7.4 TreeMap与LinkedHashMap
--Video
-7.5 HashSet
--Video
-8.0 导学
--Video
-8.1 Java反射机制
--Video
-8.2 Java静态代理
--Video
-8.3 Java动态代理
--Video
-8.4 Java 反射扩展-jvm加载类原理
--Video
-8.5 Java进阶课程总结
--Video