|
| |
精品推荐 |
 |
|
| |
|
|
|
|
Java利器Jakarta Commons(一)
|
日期:2007年12月29日 作者: 查看:[大字体
中字体 小字体]
|
描述:HttpClient是java.net的扩展程序包,它提供许多函数帮助你创建基于HTTP协议的各种分布式应用或者嵌入应用程序处理HTTP操作。这个库提供比Commons的其他包更详细的文档,并附带很多例子。这里将讲解怎样开发一个提取Web网页的程序。HttpClient附带的文档中有一个类似的例子,我将扩展它使它支持SSL。注意这个例子必须运行于JDK 1.4或更高版本上,因为它需要JDK1.4中的Java Secure Socket Connection库。
1.找一个可以通过HTTPS下载的网页,例如https://www.paypal.com/。确保文件%JAVA_HOME%/jre/lib/security/java.security有类似如下的一行:
security.provider.2=com.sun.net.ssl.internal.ssl.Provider 这样,至少在你的程序中处理HTTPS连接的方式是没有区别的。如果远端的站点需要验证,那么你必须做相应的配置。
2.创建HttpClient类的一个实例,所有的函数都将用到它。这个类包含一个连接管理器操作实际的连接。HttpConnectionManager接口允许你创建自己的管理器,否则可以使用内建的SimpleHttpConnectionManager或MultiThreadedHttpConnectionManager。如果无参数创建HttpClient,那么默认连接管理器为SimpleHttpConnectionManager。
HttpClient client = new HttpClient(); 3.创建一个method实例,用来定义使用那种HTTP方法与远端站点传递信息,可以选择的方法有GET, POST, PUT, DELETE, HEAD, OPTIONS和TRACE。这些method类是HttpMethod接口的不同实现。在这个例子中使用GetMethod,创建时将要GET的URL作为参数。
HttpMethod method = new GetMethod(url); 4.连接这个URL,也就是用刚才定义的方法连接URL。这个方法将返回server返回的状态码。注意executeMethod是client的函数而不是method的。
statusCode = client.executeMethod(method); 5.读取服务器的返回。如果连接失败,将抛出HttpException或IOException异常。IOException异常说明是网络出了问题,重试也不会成功。返回值可以字节数组﹑输入流或字符串的格式读取。这样,就可以随意处理输入了。
byte[] responseBody = method.getResponseBody(); 6.最后,释放连接,使之在需要时可重用。
method.releaseConnection(); 这时一个关于HttpClient库的很粗略的介绍,它还有很多功能,十分健壮。
三.Net
概要:基本Internet协议的底层API。
在那得到:主页,程序,源代码。
何时使用:当在Java应用程序中需要Internet协议的底层互连时。
例子程序:NetDemo.java。需要将commons-net-1.0.0.jar加入CLASSPATH中。
描述:Net包是很多健壮的和专业的类的集合。这些类来自于一个叫做NetComponents的商业产品的一部分。
Net包中的类既提供对协议的底层访问也有高层的抽象。在大多数情况下,抽象是足够的,它可以使你不必编写解析各种协议的底层套接字的代码。使用抽象不会损失任何功能。
SocketClient是所有协议的基类,它是一个抽象类包含所有协议的共同功能。各种协议的使用方法是很相近的:首先使用connect方法建立与远端服务器的连接,执行服务,最后断开连接。让我们通过例子来看:
1.创建一个client。我们将使用一个NNTPClient从新闻服务器上下载新闻组列表。
client = new NNTPClient(); 2.连接服务器,我用的是新闻组列表较短的服务器。
client.connect("aurelia.deine.net"); 3.提取新闻组列表。如下的命令返回NewsGroupInfo数组。如果服务器上没有新闻组则数组为空,出错则返回null。注意当新闻组列表很大时,这个命令会花很长时间。每个NewsGroupInfo对象包含关于新闻组的详细信息,有公用函数可以解析它们(如文章数,最后发表的文章,发表权限等)。
list = client.listNewsgroups();
4.最后,断开与服务器的连接。
if (client.isConnected())
client.disconnect(); 其余的client如FingerClient, POP3Client, TelnetClient等用法相似。
结束语
这篇文章介绍了Web相关和小程序类,下篇文章包括XML相关和打包类,工具类在最后一篇文章中。
本文由天极和Matrix共同策划。 (出处:清风网络学院)
上一篇:Java多重提交处理分析
下一篇:用JBuilder7开发一个简单的J2EE 应用
|
| 相关文章: |
|
|
|
| 相关软件: |
|
|
|
|