Apache HttpComponents(HTTPClient) Fluent API 使用

warning: 这篇文章距离上次修改已过1635天,其中的信息可能已经有所变动。

Jakarta Commons HTTPClient 3.X版本自11年之后就不再更新了,现在4.0以后的版本叫做HttpComponents

可以到这里下载 http://hc.apache.org/downloads.cgi

令人惊喜的是 HttpClient 4.2提供了连贯操作(Fluent API)。抛弃原来3.X版本的GetMethod、PostMethod,使得Http访问变得非常容易。

Get Request

Request.Get("http://somehost/")
        .execute().returnContent().asString();

简单一句话就可以页面内容获取到了。

如果Get有参数,可以使用URIBuilder来进行设置

URIBuilder builder = new URIBuilder();
builder.setScheme(ServerInfo.PROTOCAL).setHost(ServerInfo.HOST).setPath(path)
    .setParameter("para1", para1)
    .setParameter("para2", para2)
    .setParameter("para3", para3);

然后再进行Get

Request.Get(builder.build()).execute().returnContent().asString();

Post Request

说到Post,自然要进行参数提交

List forms = Form.form()
	.add("para1", para1)
	.add("para2", para2)
	.build();
Request.Post(uri).bodyForm(forms)
	.execute().returnResponse().getStatusLine().getStatusCode();	

本例将para1、para2两个参数提交到uri,并获取返回页面的HTTP_STATUS,其中uri亦可以通过URIBuilder进行构造。

是不是很轻松~

添加新评论