java网络编程2-URL和URI

//创建url可以指定请求的url协议,但不同的jvm支持的协议可能不相同(大部分支持http、file、https)
//构造只判断字符串中的协议支不支持,而不判断url的正确性
URL url=new URL("http://www.baidu.com");
System.out.println(url.getProtocol());
System.out.println(url.getHost());

//url中没有指定端口则返回-1
System.out.println(url.getPort());
//url中没有指定端口则协议的默认端口,没有该协议的默认端口的返回-1
System.out.println(url.getDefaultPort());


//区别
url.getFile();//返回路径信息带有查询参数
url.getPath();//只返回路径


//获取url的内容(http协议不包含头部内容,也不包含其它协议内容)
InputStream input= url.openStream();
BufferedReader reader=new BufferedReader(new InputStreamReader(input,"utf-8"));//不同的url可能编码不一样
String tmp=null;
while((tmp=reader.readLine())!=null){
  System.out.println(tmp);
}


//获取url中的底层的连接对象,可以对获取更多的信息和操作
//比如直接url获取内容默认不会超时,这可能引起程序的阻塞,通过连接对象可以设置超时时间
URLConnection connection= url.openConnection();


//对url中的特殊字符串进行编码
URLDecoder.decode("xxxx","utf-8");
URLEncoder.encode("xxxx","utf-8");

 

//URI没有网络获取功能 

URI uri=new URI("http://www.baidu.com");
System.out.println(uri.getHost());
System.out.println(uri.getPort());

posted on 2014-10-30 11:36  穆穆  阅读(788)  评论(0编辑  收藏  举报