使用 HTTP Client 构建 Web 客户端

ZDNet软件频道 时间:2004-11-08 作者:Builder.com |  我要评论()
本文关键词:DavidPetersheim javatips
下次当你再构建涉及 Web 的应用程序时,如果遇到 Java API 不够用的情况,Jakarta Commons 的HTTP Client 可能可以帮上你的忙。
本文译自Builder.com,未经许可请勿转载

下次当你再构建涉及 Web 的应用程序时,如果遇到 Java API 不够用的情况,Jakarta Commons 的HTTP Client 可能可以帮上你的忙。HTTP Client 的用法非常简单:创建HttpClient的一个实例,创建需要使用的方法类型的一个实例,然后使用HttpClient的实例执行这个方法。

下面这个例子首先读取一个 Web 页面然后将页面内容显示到标准输出上。

    HttpClient client = new HttpClient();
    GetMethod get = new GetMethod("http://www.google.com/");

    client.executeMethod(get);
    System.out.println(get.getResponseBodyAsString());

现在假设你需要使用基本的身份验证机制来访问一个页面。在这种情况下,你需要使用 HTTP Client 类UsernamePasswordCredentials。下面是添加这个类实现这一要求的代码:

    UsernamePasswordCredentialsupc =
            new UsernamePasswordCredentials("foo", "bar");

    client.getState().setCredentials(null, null, upc);

    get.setDoAuthentication(true);

在下面的代码中,我们向 get 方法添加了一个超时期,以防页面下载时间过长。

client.setConnectionTimeout(60000);

如示例代码所示,HTTP Client 中特性的使用非常简单。如果你的应用程序需要 HTTP 访问,那么可以使用HTTP Client。另外它还有很多其它功能,不局限于 Java API 中的涉及 Web 的类,而且用法都很简单。你可以看一下它是否符合你的需要。

import java.io.IOException;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.UsernamePasswordCredentials;
import org.apache.commons.httpclient.methods.GetMethod;

public class HttpClientTip {
    public static void main(String args[]) {
        try {
            HttpClient client = new HttpClient();
            GetMethod get = new GetMethod("http://www.google.com/");

            UsernamePasswordCredentialsupc =
                    new UsernamePasswordCredentials("foo", "bar");

            client.getState().setCredentials(null, null, upc);

            get.setDoAuthentication(true);

            client.setConnectionTimeout(60000);

            client.executeMethod(get);
            System.out.println(get.getResponseBodyAsString());
        }
        catch (IOException e) {
            e.printStackTrace();
        }
    }
}

访问Apache Jakarta Project 站点 可以查看更多 HTTP Client 的属性,包括 HTTPS、多部分 POST 和代理支持。


David Petersheim是Genscape公司的应用程序开发部主任。他设计和开发用于获取和处理实时能源数据的服务器端应用程序。


责任编辑:李宁

欢迎评论投稿

百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134