HttpClient源代码分析之HttpClient模块

5 篇文章 0 订阅

HttpCommon源码下载地址:    http://hc.apache.org/httpclient-3.x/scm-usage.html
HttpClient源代码下载地址[常用到 HttpClient 4.3 (GA)和 HttpCore 4.3 (GA)]: http://hc.apache.org/downloads.cgi  

 

正文内容摘自:    http://www.cnblogs.com/yakov/archive/2011/12/02/httpclient.html


HttpClient源代码分析之HttpClient模块

httpcomponents-client本身包含了四个部分,正如它的pom.xml配置文件中所写的,如下:

<modules>
    <module>httpclient</module>
    <module>httpmime</module>
    <module>httpclient-cache</module>
    <module>httpclient-osgi</module>
</modules>

下面分别就这四个模块进行源代码的分析和说明.

httpclient模块:

这个模块是httpcomponent-client的核心,很多http相关的接口和功能都在这个模块中实现。下面的列表显示了httpcomponent-client包含的package。

package名称 描述
org.apache.http.annotation 关于注记的一些函数包
org.apache.http.auth 在client端使用HTTP验证server的API
org.apache.http.auth.params 配置HTTP验证类的参数
org.apache.http.client client端HTTP通信的API
org.apache.http.client.entity 其他依赖于HttpClient特殊特征的HTTP实体实现
org.apache.http.client.methods 针对多种HTTP方法如GET和POST等的Request的实现
org.apache.http.client.params 用来配置默认的HttpClient实现的参数
org.apache.http.client.protocol HTTP状态和认证管理的其他request和response拦截器
org.apache.http.client.utils HttpClient的辅助和公用类
org.apache.http.conn 为打开和管理client端HTTP连接提供接口和实现的client端连接管理和处理API
org.apache.http.conn.params HTTP连接和连接管理相关的类的配置参数
org.apache.http.conn.routing client端路由表现和追踪API
org.apache.http.conn.scheme Scheme类表示了一个协议格式,如"HTTP"或者"HTTPS",它包含了许多协议属性,如默认端口和给指定协议创建Sockets的Socket工厂
org.apache.http.conn.ssl TLS/SSL的特别API
org.apache.http.conn.util HTTP连接的公用类集合
org.apache.http.cookie client端通过cookie管理状态的API
org.apache.http.cookie.params HTTP状态管理类的配置参数
org.apache.http.impl.auth org.apache.http.auth包中接口的默认实现
org.apache.http.impl.client org.apache.http.client包中接口的默认实现
org.apache.http.impl.conn org.apache.http.conn包中接口和相关类的默认实现
org.apache.http.impl.conn.tsccm 线程安全的client连接管理的实现
org.apache.http.impl.cookie org.apache.http.cookie包中接口的默认实现

 

 

上面简单描述了各个package的功能,具体的package情况会如下所述,这里会针对每个包中的类图和时序图,以及用到的设计模式进行简单的分析说明。

package: org.apache.http.annotation

这个package中包含了4个Annotation Type的接口。主要用于注记域,方法或者类。

GuardedBy 这个注记标注过的域或者方法,只有只有特殊锁的时候才可以被访问,这个锁可能是一个内建的锁,如同步锁,也可能是一个java.util.concurrent.Lock
Immutable 这个注记标注过的类是不可变的
NoThreadSafe 这个注记标注过的类是非线程安全的
ThreadSafe 这个注记标注过的类是线程安全的

package: org.apache.http.auth

这个package中包含了4个接口,8个类和3个异常类。主要用于client端的HTTP认证。

接口               
AuthScheme 这个借口描述了一个抽象的面向认证的响应格式
AuthSchemeFactory AuthScheme的工厂方法
ContextAwareAuthScheme 这个借口描述了一个扩展的认证格式,需要访问HTTPContext来产生认证字符串
Credentials 这个接口描述了一系列包含了用来建立用户身份的安全委托和密码的正式
类                 
AUTH HTTP认证相关的常量和静态辅助信息
AuthSchemeRegister 认证格式注册,用来获取针对特定认证类型的一致认证格式的实现
AuthScope 这个类描述了证书使用的认证范围包括主机名,端口,域名,认证格式名等
AuthState 这个类提供了有关认证过程中状态的详细信息
BasicUserPrincipal HTTP认证的基本的用户委托
NTCredentials 包含Windows特定属性例如用户所属域的名字的Microsoft Windows平台的证书实现
NTUserPrincipal Microsoft Windows特有的用户委托实现
UsernamePasswordCredentials 基于用户名和密码对的简单证书的实现
异常类            
AuthenticationException 认证过程失败时抛出
InvalidCredentialsException 用来响应认证请求的认证证书是无效的时候抛出
MalformedChallengeException 在特定语境中,认证的方法是无效的或者非法的时候抛出

下面是这个包的类图

 


package: org.apache.http.auth.params 

下面是这个包的类图

 

 package: org.apache.http.client

类图如下

 

package: org.apache.http.client.entity

类图如下:

 

package: org.apache.http.client.methods

类图如下

 


package: org.apache.http.client.params

 

package: org.apache.http.client.protocol

类图如下

 

package: org.apache.http.client.utils

类图如下

 

package: org.apache.http.conn

类图如下

 


package: org.apache.http.conn.params

类图如下

 


package: org.apache.http.conn.routing

类图如下

 

package: org.apache.http.conn.scheme





package: org.apache.http.conn.ssl

类图

 


package: org.apache.http.conn.util

类图

 


package: org.apache.http.cookie

类图

 

package: org.apache.http.cookie.params

类图

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值