Socket编程(二)

URL 统一资源定位符,通过URL可以直接读取或者写入网上的数据     

     1. URL类有两个组成部分, 协议名称 和 资源名称,中间用冒号隔开。   例如:http://www.xiaolai1995.com

     2. URL类可以直接用URL的组成部分构建,也可以用以有的URL对象来构造。

      示例代码:

 1 public static void main(String[] args) {
 2         try {
 3             //创建URL实例
 4             URL url = new URL("http://www.baidu.com");
 5             //根据已有URL实例创建URL实例
 6             //?后表示参数,#后表示锚点
 7             URL url2 = new URL(url, "/index?username=lwj#text");
 8             System.out.println("协议名:" + url2.getProtocol());
 9             System.out.println("主机:" + url2.getHost());
10             //如果创建URL实例时没用指定端口号,根据协议的不同会使用默认的端口号,getPort返回值为-1;
11             System.out.println("端口号:" + url2.getPort());
12             System.out.println("文件路径:" + url2.getPath());
13             System.out.println("文件名:" + url2.getFile());
14             System.out.println("相对路径:" + url2.getRef());
15             System.out.println("查询字符串:" + url2.getQuery());
16         } catch (MalformedURLException e) {
17             // TODO Auto-generated catch block
18             e.printStackTrace();
19         }
20     }

 

输出结果:

协议名:http
主机:www.baidu.com
端口号:-1
文件路径:/index
文件名:/index?username=lwj
相对路径:text
查询字符串:username=lwj

 

    用URL读取百度首页上信息的代码例子

    示例代码:

 1 try {
 2             URL url = new URL("http://www.baidu.com");
 3             //用url的openstream方法获取url对象所表示资源的字节输入流
 4             InputStream is = url.openStream();
 5             //字节输入流转字符输入流
 6             InputStreamReader isr = new InputStreamReader(is,"utf-8");
 7             //为字符输入流添加缓冲
 8             BufferedReader buffer = new BufferedReader(isr);
 9             //循环的一行一行的输出缓冲区里的字符输入流
10             String data = buffer.readLine();
11             while(data != null){
12                 System.out.println(data);
13                 data = buffer.readLine();
14             }
15             //关闭资源
16             buffer.close();
17             isr.close();
18             is.close();
19         } catch (MalformedURLException e) {
20             // TODO Auto-generated catch block
21             e.printStackTrace();
22         } catch (IOException e) {
23             // TODO Auto-generated catch block
24             e.printStackTrace();
25         }
26     }

输出结果为百度首页的HTML代码。

可以把结果复制保存在文本文档中,然后把txt格式改html格式,打开就是百度的首页。

 

从上诉例子可以看出URL通过路径保存定位了网页资源,从而用URL类所带的方法操作这个路径中的资源。

 

如果有什么错误,或者我理解错误或不当的,恳请大家纠正,谢谢!嘻嘻嘻~

 

posted on 2017-02-25 19:26  艹艹哒丶  阅读(96)  评论(0编辑  收藏  举报

导航