一、用JAVA实现URL 
  在JAVA中,Java.net包里面的类是进行网络编程的,其中java.net.URL类和java.net.URLConection类使编程者方便地利用URL在Internet上进行网络通信。

1、创建URL对象
  URL类有多种形式的构造函数:

package com.my.socket;

import java.net.MalformedURLException;
import java.net.URL;
import java.net.UnknownHostException; public class ScocketTestt { public static void main(String[] args) throws UnknownHostException, MalformedURLException { //(1) URL ( String url)
//url代表一个绝对地址,URL对象直接指向这个资源,如:
URL urll1=new URL("http://www.cqwu.edu.cn"); //(2) URL ( URL baseURL , String relativeURL)
//其中,baseURL代表绝对地址,relativeURL代表相对地址。如:
URL urll2 = new URL("http://www.cqwu.edu.cn");
URL lib1 = new URL(urll2 , "library / library.asp"); //(3) URL ( String protocol , String host , String file)
//其中,protocol代表通信协议,host代表主机名,file代表文件名。如:
new URL ("http" , "www.cqwu.edu.cn", "/ test / test.asp"); //(4) URL ( String protocol , String host , int port , String file)
URL lib2 = new URL ("http" , "www.cqwu.edu.cn", 80 , "/ test / test.asp"); } }

2、获取URL对象的属性
  getDefaultPort(): 返回默认的端口号。
  getFile(): 获得URL指定资源的完整文件名。
  getHost(): 返回主机名。
  getPath(): 返回指定资源的文件目录和文件名。
  getPort(): 返回端口号,默认为-1。
  getProtocol(): 返回表示URL中协议的字符串对象。
  getRef(): 返回URL中的HTML文档标记,即#号标记。
  getUserInfo: 返回用户信息。
  toString: 返回完整的URL字符串。

        url1.getHost();//获取主机
url1.getPort();//如果没有指定端口号,根据协议不同使用默认端口。此时getPort()方法的返回值为 -1
url1.getPath();//获取文件路径
url1.getFile();//文件名,包括文件路径+参数
url1.getRef();//相对路径,就是锚点,即#号后面的内容
url1.getQuery();//查询字符串,即参数

有两种方法可以用来访问Internet。一是利用URL类的openStream()方法;二是使用openConnection()方法创建一个URLConnection类的对象。

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

//使用URL读取网页内容
//创建一个URL实例
URL url =new URL("http://www.baidu.com");
InputStream is = url.openStream();//通过openStream方法获取资源的字节输入流
InputStreamReader isr =newInputStreamReader(is,"UTF-8");//将字节输入流转换为字符输入流,如果不指定编码,中文可能会出现乱码
BufferedReader br =newBufferedReader(isr);//为字符输入流添加缓冲,提高读取效率
String data = br.readLine();//读取数据
while(data!=null){
System.out.println(data);//输出数据
data = br.readerLine();
}
br.close();
isr.colose();
is.close();

上例首先创建URL对象url,并在其基础上打开输入流获取InputStreamReader对象,再由此对象创建BufferedReader对象br,从br中读取数据即可得到url所指定的资源文件。
  上面的openStream()方法只能读取网络资源,若要既能读取又能发送数据,则要用到URL类的openConnection()方法来创建一个 URLConnection类的对象,此对象在本地机和URL指定的远程节点建立一条HTTP协议的数据通道,可进行双向数据传输。
  类URLConnection提供了很多设置和获取连接参数的方法,最常用到的是getInputStream()和getOutputStream()方法,如:
  URL sum=new URL("http://java.sum.com/cgi-bin/backwards");
  URLConnection suncon=buaa.openConnection();
  sumcon.setDoOutput(true);
  DataInputStream dis=new DataInputStream(suncon.getInputStream());
  PrintStream ps=new PrintStream(suncon.getOutputStream());
  String str=dis.readLine();
  ps.println("来自客户机的信息:.......");

最新文章

  1. [[其他教程]] 2015年最新版iOS基础视频_最适合初学者入门
  2. Linux破解root密码
  3. JavaScript DOM学习总结(二)
  4. 一款bootstrap树形js
  5. centos7 学习
  6. C 简单处理excel 转成 json
  7. Netty4.x分析(转)
  8. delphi debug release区别是什么?
  9. wcf自身作为宿主的一个小案例
  10. Robotium学习笔记三
  11. 通过udl文件得到连接字符串
  12. 单发邮箱 群发邮箱 程序 Email winform
  13. h5 测试关注点
  14. 在 macOS High Sierra 10.13 搭建 PHP 开发环境
  15. 混淆矩阵、准确率、精确率/查准率、召回率/查全率、F1值、ROC曲线的AUC值
  16. numba学习教程
  17. 三、Java多人博客系统-技术架构
  18. [AGC001 E] BBQ Hard
  19. Ouroboros Snake POJ - 1392(数位哈密顿回路)
  20. xsd与xml和类(class)对象之间的互相转换

热门文章

  1. Spring cloud微服务安全实战-3-12session固定攻击防护
  2. 算法习题---5-7打印队列(UVa12100)
  3. 使用HSQLDB 客户端(jvm自带数据库使用技巧)
  4. 多个wav音频文件合并(连接)成一个文件
  5. LeetCode_278. First Bad Version
  6. .Net Core 程序报错 在上一个操作完成之前,在此上下文上启动了第二个操作。
  7. networkx详细教程
  8. iOS 多线程的简单理解(1) 方式 :同步 异步
  9. jQuery插件——imgbox(点击图片查看大图)
  10. Java多态的6大特性|乐字节