ITPub博客

首页 > 应用开发 > > Java的HTTP协议库 HttpComponents

Java的HTTP协议库 HttpComponents

作者:wyvernw 时间:2019-10-15 10:03:47 0 删除 编辑

HttpComponents 也就是以前的httpclient项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端/服务器编程工具包,并且它支持 HTTP 协议最新的版本和建议。不过现在的 HttpComponents 包含多个子项目,有:

HttpComponents Core

HttpComponents Client

HttpComponents AsyncClient

Commons HttpClient

以下列出的是 HttpClient 提供的主要的功能,要知道更多详细的功能可以参见 HttpClient 的主页。

实现了所有 HTTP 的方法(GET,POST,PUT,HEAD 等)

支持自动转向

支持 HTTPS 协议

支持代理服务器等

支持Cookie


HttpClient 示例代码:

DefaultHttpClient httpclient = new DefaultHttpClient();

try {

HttpGet httpget = new HttpGet("https://portal.sun.com/portal/dt");

HttpResponse response = httpclient.execute(httpget);

HttpEntity entity = response.getEntity();

System.out.println("Login form get: " + response.getStatusLine());

EntityUtils.consume(entity);

System.out.println("Initial set of cookies:");

List cookies = httpclient.getCookieStore().getCookies();

if (cookies.isEmpty()) {

System.out.println("None");

} else {

for (int i = 0; i < cookies.size(); i++) {

System.out.println("- " + cookies.get(i).toString());

}

}

HttpPost httpost = new HttpPost("https://portal.sun.com/amserver/UI/Login?" +

"org=self_registered_users&" +

"goto=/portal/dt&" +

"gotoOnFail=/portal/dt?error=true");

List nvps = new ArrayList ();

nvps.add(new BasicNameValuePair("IDToken1", "username"));

nvps.add(new BasicNameValuePair("IDToken2", "password"));

httpost.setEntity(new UrlEncodedFormEntity(nvps, Consts.UTF_8));

response = httpclient.execute(httpost);

entity = response.getEntity();

System.out.println("Login form get: " + response.getStatusLine());

EntityUtils.consume(entity);

System.out.println("Post logon cookies:");

cookies = httpclient.getCookieStore().getCookies();

if (cookies.isEmpty()) {

System.out.println("None");

} else {

for (int i = 0; i < cookies.size(); i++) {

System.out.println("- " + cookies.get(i).toString());

}

}

} finally {

// When HttpClient instance is no longer needed,

// shut down the connection manager to ensure

// immediate deallocation of all system resources

httpclient.getConnectionManager().shutdown();

}

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/835/viewspace-3131538/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-04-12

  • 博文量
    128
  • 访问量
    1299