Apache HttpComponents Client 4.0快速入门/升级-1.GET方法访问网页

 Apache HttpComponents Client 4.0已经发布多时,httpclient项目从commons子项目挪到了HttpComponents子项目下,httpclient3.1和httpcilent4.0无法做到代码向后兼容,升级比较麻烦。我在做项目之余找时间研究了一下,写了一套3.1与4.0对比的代码,不求面面俱到,但求简单易懂。如果代码用到真实项目中,还需要考虑诸如代理、Header、异常处理之类的问题。

 

Http GET方法得到www.g.cn的源码:

import java.io.IOException;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.DefaultHttpClient;
public class GetSample {
/**
* @param args
* @throws IOException
* @throws HttpException
*/
public static void main(String[] args) throws HttpException, IOException {
String url = "http://www.g.cn/";
System.out.println(url);
System.out.println("Visit google using Apache commons-httpclient 3.1:");
System.out.println(get3(url));
System.out.println("Visit google using Apache HttpComponents Client 4.0:");
System.out.println(get4(url));
}
/** 使用Apache commons-httpclient 3.1,GET方法访问网页 */
public static String get3(String url) throws HttpException, IOException {
org.apache.commons.httpclient.HttpClient httpClient = new org.apache.commons.httpclient.HttpClient();
GetMethod getMethod = new GetMethod(url);
try {
if (httpClient.executeMethod(getMethod) != HttpStatus.SC_OK) {
System.err.println("Method failed: " + getMethod.getStatusLine());
}
return getMethod.getResponseBodyAsString();
} finally {
getMethod.releaseConnection();
}
}
/** 使用Apache HttpComponents Client 4.0,GET方法访问网页 */
public static String get4(String url) throws ClientProtocolException, IOException {
org.apache.http.client.HttpClient client = new DefaultHttpClient();
HttpGet httpget = new HttpGet(url);
try {
return client.execute(httpget, new BasicResponseHandler());
} finally {
client.getConnectionManager().shutdown();
}
}
}

时间: 2024-10-30 15:30:52

Apache HttpComponents Client 4.0快速入门/升级-1.GET方法访问网页的相关文章

微软官方ASP.NET.2.0快速入门 数据绑定那个教程的问题

问题描述 一个表列包括StudentID,StudentName,StudentPass,Sex,Birthday,Email,score用asp.net编程我想默认显示StudentID,StudentName,StudentPass,Sex,后增加一个详细信息选择时才显示整个列可是点击每个详细信息都显示第一行的数据怎样才能选择每行的详细信息显示对应的信息<%@PageLanguage="VB"AutoEventWireup="false"CodeFile=

《R语言编程艺术》——第1章 1.0 快速入门

第1章 1.0 快速入门 如前言所述,R是一种针对统计分析和数据科学的功能全面的开源统计语言.它在商业.工业.政府部门.医药和科研等涉及数据分析的领域都有广泛的应用.本章将给出R的简单介绍--如何调用.能做什么以及使用什么文件.这里只介绍你在理解后面几章的例子时所需的基础知识,具体的细节将会在后面的章节中加以介绍.如果你的公司或大学允许,R可能已经安装在你的系统中.如果还没安装,请参考附录A中的安装指南.

Castle Active Record for .NET2.0快速入门示例

一.创建Web工程 创建一个Web站点或者Web应用程序,添加对Castle.ActiveRecord.dll的引用. 二.创建需要持久化的业务实体 在.NET2.0下,由于引入了泛型,创建业务实体比1.1下简单了许多,业务实体只需要继承于泛型的ActiveRecordBase类,其中默认已经实现了一些静态的方法,不需要我们再在业务实体中实现. [ActiveRecord("Employees")] public class Employee : ActiveRecordBase<

ASP.NET 2.0快速入门(2):ASP.NET 2.0 数据绑定的例子点击more info 都显示第一个数据

问题描述 au_idau_lnameau_fnamecitystatezipdetails172-32-1176WhiteJohnsonMenloParkCA94025moreinfo213-46-8915GreenMarjorieOaklandCA94618moreinfo238-95-7766CarsonCherylBerkeleyCA94705moreinfo267-41-2394O'LearyMichaelSanJoseCA95128moreinfo274-80-9391Straight

快速入门Vue_javascript技巧

一.什么是Vue? Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的 渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计.Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合.另一方面,Vue 完全有能力驱动采用单文件组件和 Vue 生态系统支持的库开发的复杂单页应用.Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件.如果你是有经验的前端开发者,想知道 Vue.js 与其它库/框架的区别

Vue.js快速入门教程_javascript技巧

像AngularJS这种前端框架可以让我们非常方便地开发出强大的单页应用,然而有时候Angular这种大型框架对于我们的项目来说过于庞大,很多功能不一定会用到.这时候我们就需要评估一下使用它的必要性了.如果我们仅仅需要在一个简单的网页里添加屈指可数的几个功能,那么用Angular就太麻烦了,必要的安装.配置.编写路由和设计控制器等等工作显得过于繁琐. 这时候我们需要一个更加轻量级的解决方案.Vue.js就是一个不错的选择.Vue.js是一个专注于视图模型(ViewModal)的框架.视图模型是U

Eclipse3.0下Struts +spring+ hibernate快速入门(1)

快速入门 本文是开发基于spring的web应用的入门文章,前端采用Struts MVC框架,中间层采用spring,后台采用Hibernate. 本文包含以下内容: ·配置Hibernate和事务 ·装载Spring的applicationContext.xml文件 ·建立业务层和DAO之间的依赖关系 ·将Spring应用到Struts中 概缆这个例子是建立一个简单的web应用,叫MyUsers,完成用户管理操作,包含简单的数据库增,删,查,该即CRUD(新建,访问,更新,删除)操作.这是一个

发布Apache Hadoop 2.6.0——异构存储,长时间运行的服务与滚动升级支持

发布Apache Hadoop 2.6.0--异构存储,长时间运行的服务与滚动升级支持 我很高兴地宣布,在Apache的Hadoop社区已经发布的Apache Hadoop的2.6.0:http://markmail.org/message/gv75qf3orlimn6kt! 特别是,我们很高兴在此版本中相关的三个主要片:异构存储在HDFS使用SSD和内存层,支持长时间运行在YARN服务和滚动升级,将升级您的集群软件,然后重新启动升级的节点而无需关闭群集或丢失正在进行的工作.YARN作为其架构中

HTML 4.0 语言快速入门参考教程

参考|教程|快速入门 所有的万维网文件都是由超文本标志语言HTML所创建的.在这种语言中,可以使用各种标记对文件进行处理.这些标记决定了文件内容的外观.结构以及交互性等方面,他们的共同之处就是都使用"<>",例如段落标记<p>,图片标记<imp>等. 在浏览器中,是看不到任何HTML标记的,但是在浏览器中所看到的网页效果却都是由这些标记生成的. 在大多数情况下,在创建站点时并不需要对HTML标记进行掌握,因为在FrontPage 2000这样的软件中