从URL获取信息

import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.Date;
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;



public class UrlConnectionTest {

	public void getUrlContent(String urlStr){
		try {
			URL url=new URL(urlStr);
			URLConnection urlConn=url.openConnection();
			urlConn.connect();	//连接指定URL
			Map headers=urlConn.getHeaderFields();	//指定头部信息
			//打印出所有头部信息
			//由Map.Entry定义的getKey( )和getValue( )方法而显示。
			//程序开始创建一个散列映射,然后将名字的映射增加到平衡表中。接下来,映射的内容通过使用由调用函数entrySet( )而获得的集合“视图”而显示出来。
			//关键字和值通过调用
			Set entrySet = headers.entrySet();
			Iterator iter=entrySet.iterator();
			System.out.println("获取指定头部信息:");
			while(iter.hasNext()){
				Map.Entry entry=(Map.Entry)iter.next();
				System.out.println(entry.getKey()+":"+entry.getValue());
			}
			System.out.println("以指定方法获取url信息");
			
			//获取文本类型和编码方式
			System.out.println("contentType=" + urlConn.getContentType());
			
			//获取信息长度
			System.out.println("contentLength=" +urlConn.getContentLength());
			
			//获取编码内容
			System.out.println("contentTypeEncoding="+urlConn.getContentEncoding());
			
			//获取创建日期
			System.out.println("date="+new Date(urlConn.getDate()));
			
			//获取过期时间
			System.out.println("expiration="+new Date(urlConn.getExpiration()));
			
			//获取最近修改日期
			System.out.println("lastModified="+new Date(urlConn.getLastModified()));
			
			System.out.println("开始获取信息主体:");
			
			Scanner in=new Scanner(urlConn.getInputStream());
			
			while(in.hasNextLine()){
				System.out.println(in.nextLine());	//打印出每一行html代码
			}
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
	}
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		UrlConnectionTest test =new UrlConnectionTest();
		test.getUrlContent("http://www.baidu.com");
	}

}


Java类库提供一个URL和URLConnection类用于实现URL连接,这两个类隐藏了与服务器交互时复杂的连接以及数据交互。欲实现与服务器交互,首先必须将URL地址作为类URL构造方法的参数构建一个实例。

URL url=new URL(urlStr);

然后通过openConnection方法获取一个URLConnection对象,并通过URLConnection类的connect方法实现与服务器的连接。

URLConnection urlConn=url.openConnection();

urlConn.connect();

此时就可以从远程服务器获得想要的数据,方法getHeaderFields可以获得所有服务器返回的头部信息,并将这些信息封装在一个Map中。同样,getContentType可以获得服务返回的文本类型和编码方式。getContentLength可以获得服务器返回信息的长度。

getContentEncoding获得返回信息主题的编码格式,getDate方法会返回一个long类型数据。该数据的构造方法可以获得该数据代表的时间。getExpiration方法获得该URL代表信息的过期时间;getLastModifield方法获得该信息最后一次修改的时间,同样以long类型返回。URLConnection类的getInputStream方法获得一个该URL代表信息的主体输入流,再从中读取数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值