绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
Java的HTTP协议库 HttpComponents
2019-10-15 10:03:47

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();

}

分享好友

分享这个小栈给你的朋友们,一起进步吧。

应用开发
创建时间:2020-06-17 15:31:04
应用软件开发是指使用程序语言C#、java、 c++、vb等语言编写,主要是用于商业、生活应用的软件的开发。
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • 栈栈
    专家
戳我,来吐槽~