简单的使用httpclient读取网页html例子
public void clientPost(String url)
{
/* 1 生成 HttpClinet 对象并设置参数*/
HttpClient httpClient=new HttpClient();
//设置浏览器信息
httpClient.getParams().setParameter(HttpMethodParams.USER_AGENT,"Mozilla/5.0 (X11; U; Linux i686; zh-CN; rv:1.9.1.2) Gecko/20090803 Fedora/3.5.2-2.fc11 Firefox/3.5.2");
//设置 Http 连接超时为5秒
httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(5000);
/*2 生成 GetMethod 对象并设置参数*/
GetMethod getMethod=new GetMethod(url);
//设置 get 请求超时为 5 秒
getMethod.getParams().setParameter(HttpMethodParams.SO_TIMEOUT,5000);
//设置请求重试处理,用的是默认的重试处理:请求三次
getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
new DefaultHttpMethodRetryHandler());
/*3 执行 HTTP GET 请求*/
try{
int statusCode = httpClient.executeMethod(getMethod);
/*4 判断访问的状态码*/
if (statusCode != HttpStatus.SC_OK)
{
System.err.println("Method failed: "+ getMethod.getStatusLine());
}
/*5 处理 HTTP 响应内容*/
//HTTP响应头部信息,这里简单打印
Header[] headers=getMethod.getResponseHeaders();
for(Header h: headers){
System.out.println(h.getName()+" "+h.getValue());
}
//读取 HTTP 响应内容,这里简单打印网页内容
byte[] responseBody = getMethod.getResponseBody();//读取为字节数组
System.out.println(new String(responseBody,"utf-8"));
//读取为 InputStream,在网页内容数据量大时候推荐使用
//InputStream response = getMethod.getResponseBodyAsStream();//
}
catch (HttpException e)
{
// 发生致命的异常,可能是协议不对或者返回的内容有问题
System.out.println("Please check your provided http address!");
e.printStackTrace();
}
catch (IOException e)
{
// 发生网络异常
e.printStackTrace();
} finally {
/*6 .释放连接*/
getMethod.releaseConnection();
}
}
http://www.yzcopen.com/ 已经上了很多例子
http://www.yzcopen.com/seo/spider 都是用HttpClient 做的
最新文章
- Golang接口(interface)三个特性(译文)
- C# 导入EXCEL 报错外部表不是预期的格式错误 .
- C#--声明类
- 编写更好的jQuery代码的建议(share)
- 关于EL表达式的大小写问题。谁来帮我解答?
- c#教程之事件处理函数的参数
- mysql命中索引规律
- Linux Logwatch的学习总结
- python __all__
- Python全栈开发记录_第一篇(循环练习及杂碎的知识点)
- 61.纯 CSS 创作一只咖啡壶(这个不好看)
- 编译sgbm_ros中遇到的问题
- c++的矩阵乘法加速trick
- VS2010/MFC编程入门之四十六(MFC常用类:MFC异常处理)
- Nginx教程(7) 正向代理与反向代理【总结】
- 1 cocos2dx源码分析-程序启动与主循环
- HDU3308 线段树(区间合并)
- CentOS 6.5 源码安装subversion-1.8.8,附加mod_dav_svn模块
- java字节码理解-入门
- HDU 6055 Regular polygon (暴力)