博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HttpComponents 也就是以前的httpclient项目
阅读量:6267 次
发布时间:2019-06-22

本文共 2179 字,大约阅读时间需要 7 分钟。

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

  • HttpComponents Core

  • HttpComponents Client
  • HttpComponents AsyncClient
  • Commons HttpClient

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

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

  • 支持自动转向

  • 支持 HTTPS 协议

  • 支持代理服务器等

  • 支持Cookie

HttpClient 示例代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
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<Cookie> 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 <NameValuePair> nvps = 
new 
ArrayList <NameValuePair>();
    
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();
}

转载地址:http://tuppa.baihongyu.com/

你可能感兴趣的文章
Mac OS 10.10.3下Apache + mod_wsgi配置【一】
查看>>
Hibernate基于注解的双向one-to-many映射关系的实现
查看>>
算法竞赛入门经典 例题 3-2 蛇形填数
查看>>
remove-duplicates-from-sorted-list I&II——去除链表中重复项
查看>>
c++ 网络库
查看>>
Linux 格式化扩展分区(Extended)
查看>>
linux echo命令
查看>>
nginx 内置变量大全(转)
查看>>
lakala反欺诈建模实际应用代码GBDT监督学习
查看>>
java 解析excel工具类
查看>>
Google FireBase - fcm 推送 (Cloud Messaging)
查看>>
BBS论坛(二十七)
查看>>
html DOM 的继承关系
查看>>
装饰器的邪门歪道
查看>>
Dubbo常用配置解析
查看>>
【转】C#解析Json Newtonsoft.Json
查看>>
macports的安装及常用命令
查看>>
(转)使用C#开发ActiveX控件
查看>>
spring mvc 基于注解 配置默认 handlermapping
查看>>
半小时学会上传本地项目到github
查看>>