用于模拟浏览器访问网页,抓取站点源文件。
HttpClient(现在是HttpComponents)把问题搞复杂了。其实
Java内置的HttpURLConnection很好的。HttpComponents不但复杂,而且有小问题。Java API没有内置HttpComponents是应该是有考虑的,HttpURLConnection已经可以了。
* 基于HttpURLConnection
* version 1.0.0_00,支持POST数据,支持SSL,支持上传文件。
* GET、POST方式无需设置自动判断。
* 代码经过优化和修理。
【API简介】
该class没有字段。
该class的方法:
Http(String urlString, String charset);
execute();
setHeader(String name, String value);
setTimeOut(int ms);
addPostData(String name, String value);
addUploadFile(String name, String path, String rename);
getInputStream();
getHeader(String key);
getHeaders();
javadoc文档
【示例】
举一个几乎用到所有功能的例子
附注:
为什么没有直接返回页面文本而是通过getInputStream()方法返回一个输入流呢?
原因一,有些网站会不定次地发送压缩格式的body,例如百度。本类不予解压缩,因为本类只负责抓取而不负责对文档进行解析,压缩类型(gzip等)不确定,返回的文档也不一定是什么文档。可根据getHeader("Content-Encoding")的值判断压缩情况。
原因二,java中都是对流进行操作,这是个标准的、默认的接口。
|
最新内容请见作者的GitHub页:http://qaseven.github.io/