--httpmime-4.2.5.jar  跟提交Form相关的类

这一块主要post数据的提交。每一条数据同name和content组成。content可能是字节数组或是流。提交这一类(MIME)的数据的时候,还要添加一些

header数据。于是FormBodyPart类就诞生了,它的属性有name,header,content。很多个FormBodyPart组成了HttpMultipart(因为HttpMultipart

有个FormBodyPart的List集合)。所有的东东最后在MultipartEntity中封装。

org.apache.http.entity.mime包下

AbstractContentBody->ContentBody->ContentDescriptor  其它的类都是AbstractContentBody的子类了。

包括ByteArrayBody、FileBody、InputStreamBody、StringBody。  2014-6-6

--fluent-hc-4.2.5.jar  运行线程执行访问

核心类Executor  可以设置验证auth()

这个类也算是一个袖珍型Client了。可以看到这个框架的一个基本架构。比如通过localContext.setAttribute("http.cookie-store", cookieStore);传入

cookie对象。

协议的注册:

SchemeRegistry schemeRegistry = new SchemeRegistry();
org.apache.http.conn.scheme.SchemeSocketFactory plain = PlainSocketFactory.getSocketFactory();
schemeRegistry.register(new Scheme("http", 80, plain));

--httpclient-4.2.5.jar

org.apache.http.auth  认证

【英文学习:challenge询问】

AuthScheme认证协议或称认证模式

Credentials证书接口,它有两个实现类NTCredentials和UsernamePasswordCredentials

想继续了解,可以点这个链接  http://www.cnblogs.com/huqingyu/archive/2008/02/17/1071649.html

org.apache.http.client

这里主要是定义了一些异常类和接口。接口编程确实有它强大过人之处。

org.apache.http.client.entity  http实体对象。http实体想像成容纳http数据的类。

HttpEntity接口。http实体都实体了它。包括DecompressingEntity、DeflateStream、GzipDecompressingEntity、UrlEncodedFormEntity。

#  org.apache.http.client.methods

AbortableHttpRequest接口,实现它的类具有中断连接(访问)的功能

HttpUriRequest接口,实现了uri功能。

以HttpRequestBase为主类,其它的类直接或间接是它的子类。

HttpEntityEnclosingRequestBase是HttpRequestBase的子类。

#  org.apache.http.client.params  参数的定义和设置

#  org.apache.http.client.protocol

ClientContext接口,定义了一些对象的key,比如scheme-registry协议注册器,cookie相关对象,认证相关对象还有代理proxy

ClientContextConfigurer类,保存客户机配置数据,不过我觉得它里面的方法是直接取"http.cookiespec-registry"的字符串,是不是取它实现的接口ClientContext里面的常量更合理些呢??

这个包里面的很多类都是HttpRequestInterceptor的子类。这是个拦截器,它的拦截方法是process(HttpRequest request, HttpContext context)。

这些拦截器的基本工作就是从context中取出相关的配置对象进行处理,把相关信息放到request的header里面去。

RequestAcceptEncoding 接受的编码集
RequestAddCookies 加入cookie
RequestAuthCache 加入认证
RequestAuthenticationBase 认证的基类
RequestClientConnControl 连接控制
RequestDefaultHeaders 加入默认的请求头
RequestProxyAuthentication 代理认证,继承自RequestAuthenticationBase
RequestTargetAuthentication 目标主机认证,继承自RequestAuthenticationBase

最后剩下3个response拦截器(HttpResponseInterceptor),实现的主要功能是,对cookie的保存,和对各种压缩流的解压工作。

ResponseAuthCache 这个不推荐用了,不说了
ResponseContentEncoding 对gzip和deflate格式的流解压
ResponseProcessCookies 保存cookie

#  org.apache.http.client.utils

CloneUtils  克隆类,它是通过反射调用了一个对象自身的clone方法。好像不怎么实用。

HttpClientUtils  关闭response流,关闭client连接。

Idn接口  对字符串进行Unicode编码。

JdkIdn  Idn的实现类

Rfc3492Idn  Idn的实现类

Punycode  对上面两个实现类的封装,如果第一个类用不上,就使用第二个。

还有3个URI处理类URIBuilder、URIUtils、URLEncodedUtils

#  org.apache.http.conn

这个包里多是接口和异常,不太明白,草草看了下。

#  org.apache.http.conn.params

这个包好多类都不推荐了。

# org.apache.http.conn.routing

关于路由的包

#  org.apache.http.conn.scheme

PlainSocketFactory  简单socket工厂

Scheme  协议http或是https什么的

SchemeRegistry  协议注册器,有个map存Scheme

--httpcore-4.2.4.jar

【英文学习:Catalog 目录,集合,收录】

处理gzip流

String body = EntityUtils.toString(new GzipDecompressingEntity(res.getEntity()));

httpclient学习(原创)的更多相关文章

  1. HttpClient学习整理

    HttpClient简介HttpClient 功能介绍    1. 读取网页(HTTP/HTTPS)内容    2.使用POST方式提交数据(httpClient3)    3. 处理页面重定向    ...

  2. HttpClient 学习整理【转】

    转自 http://www.blogjava.net/Alpha/archive/2007/01/22/95216.html HttpClient 是我最近想研究的东西,以前想过的一些应用没能有很好的 ...

  3. HttpClient 学习整理 (转)

    source:http://www.blogjava.net/Alpha/archive/2007/01/22/95216.html HttpClient 是我最近想研究的东西,以前想过的一些应用没能 ...

  4. httpclient 学习

    Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性,它不仅是客户端发送Http请求变得容易,而且也方便了开发人员测试接口(基 ...

  5. HttpClient学习之 客户端HTTP编程入门

    说明 本文存在的原因,是想深入的学习下HttpClient.对应的网址是: http://hc.apache.org/httpcomponents-client-4.5.x/primer.html h ...

  6. HttpClient学习研究---第二章:连接管理

    第二章.Connection management连接管理2.1. 2.1.Connection persistence连接持久性The process of establishing a conne ...

  7. HttpClient学习(四)—— 关于Http

    一.Http状态码 状态码分类 100 ~ 199 信息提示 200 ~ 299 成功 300 ~ 399 重定向 400 ~ 499 客户端错误 500 ~ 599 服务端错误 常见状态码 200 ...

  8. httpclient学习

    httpclient入门:  http://www.ibm.com/developerworks/cn/opensource/os-httpclient/   httpclient证书导入:http: ...

  9. HTTPCLIENT 学习 (1) 入门

    早就如雷贯耳它的大名,却一直不曾相见,昨天下载下来,今天终于测试了一把,用的官网的QUICK START例子,来访问我自己以前开发过的WEB程序,因为这个网站恰好有一个写好的通过POST请求验证用户名 ...

随机推荐

  1. UCenter 的目录结构

      以下关于文件的阐述以及代码的样例,均以 PHP 程序为例. UCenter 的目录结构 UCenter 分为服务端和客户端 2 个部分.服务端目录为“upload/”,客户端目录为“client/ ...

  2. egret-初步接触

    class HelloTime extends egret.DisplayObjectContainer { public constructor() { super(); this.addEvent ...

  3. postgresql 的操作

    基本操作: \o /tmp/11.txt ,查询结果输出到文件 \d 查询table结构 \x 切换显示方式 postgresql中可以导出某个sql的执行结果到文件中,方法是在psql中首先执行\o ...

  4. leader 选举机制

    from: http://www.jasongj.com/2015/01/02/Kafka%E6%B7%B1%E5%BA%A6%E8%A7%A3%E6%9E%90/ 一种非常常用的选举leader的方 ...

  5. JAVA NIO学习记录1-buffer和channel

    什么是NIO? Java NIO(New IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API.NIO与原来的IO有同样的作用和目的,但是使用的方式完全不 ...

  6. 推荐的 MongoDB 安装文档

    简介: MongoDB 是一个由 C++ 语言编写的基于分布式文件存储的数据库,是目前最像关系型数据库的非关系型数据库. 最近写爬虫, 思来想去觉得还是用 MongoDB 比较方便. 一.安装 # 官 ...

  7. Windows7 64bit+python3.6环境下安装OpenCV3.3

    安装opencv3.3 打开windows的Python扩展包网址 根据自己的系统选择下载,这里我选择的是 通过pip3安装该whl文件,使用如下命令  pip3 install 该whl的绝对路径 ...

  8. 使用flash导出图集动画到unity

    1.选中要导出的元件,元件所有动作要对齐,右键导出Sprite Sheet.. 2.设置如下 3.复制导出的png图片到unity,对图片进行网格裁剪,网格宽高在plist文件中:

  9. 吴裕雄 数据挖掘与分析案例实战(4)——python数据处理工具:Pandas

    # 导入模块import pandas as pdimport numpy as np # 构造序列gdp1 = pd.Series([2.8,3.01,8.99,8.59,5.18])print(g ...

  10. 集成学习算法总结----Boosting和Bagging(转)

    1.集成学习概述 1.1 集成学习概述 集成学习在机器学习算法中具有较高的准去率,不足之处就是模型的训练过程可能比较复杂,效率不是很高.目前接触较多的集成学习主要有2种:基于Boosting的和基于B ...