--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. selenium+python自动化97--unittest参数化(paramunittest)

    前言 paramunittest是unittest实现参数化的一个专门的模块,可以传入多组参数,自动生成多个用例 前面讲数据驱动的时候,用ddt可以解决多组数据传入,自动生成多个测试用例.本篇继续介绍 ...

  2. tornado-模板,转义,上传静态文件

    class MainHandler(tornado.web.RequestHandler): def get(self): self.render("ces.html") def ...

  3. uva-639-枚举

    题意: 象棋里的車可以吃横竖的車,题目加了一个墙,用于阻断攻击,问4x4的棋盘最多可以放多少只車, 思路:枚举每一个点,2^16次方种情况 #include<stdio.h> #inclu ...

  4. 练手THINKPHP5过程和bootstrap3.3.7

    1 在GIT上下载了最新版的源码,同时安装composer 用composer更新 git地址https://github.com/top-think/think 2 搭建本地开发环境,开启url重写 ...

  5. POI 生成带联动下拉框的excel表格

    参考:https://www.cnblogs.com/cjbbk/p/7527276.html 解决POI3.17 与其它版本的不同的坑:https://blog.csdn.net/Weirdo_zh ...

  6. JAVA WebSocKet ( 简单的聊天室 )

    1, 前端代码 登入页 -> login.html <!DOCTYPE html> <html> <head> <meta charset=" ...

  7. Astah professional 7.2

    分享Astah professional 7.2下载和破解: 官方下载地址:http://astah.net/download 1.免费的community版本 链接:http://pan.baidu ...

  8. vue基础——事件处理

    监听事件 可以用 v-on 指令监听dom事件,并在触发时运行一些JavaScript代码. 示例: <div id="example-1"> HTML <but ...

  9. null id in entry (don't flush the Session after an exception occurs)

    null id in entry (don't flush the Session after an exception occurs) 遇到这个异常实属不小心所致,最初看到异出的错误信息时我误认为是 ...

  10. 【339】matplotlib based on python3

    Ref: python3 的 matplotlib绘图库的使用 Ref: python matplotlib绘图设置坐标轴刻度.文本 Ref: python中matplotlib的颜色及线条控制 Re ...