HttpURLConnection和HttpClient
2015-08-21 23:10
447 查看
HTTP 协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源。在 JDK 的 java.net 包中已经提供了访问 HTTP 协议的基本功能:HttpURLConnection。但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活。
除此之外,在Android中,androidSDK中集成了Apache的HttpClient模块,用来提供高效的、最新的、功能丰富的支持 HTTP 协议工具包,并且它支持 HTTP 协议最新的版本和建议。使用HttpClient可以快速开发出功能强大的Http程序。 HttpURLConnection和HttpClient区别 HttpClient是个很不错的开源框架,封装了访问http的请求头,参数,内容体,响应等等, HttpURLConnection是java的标准类,什么都没封装,用起来太原始,不方便,比如重访问的自定义,以及一些高级功能等。
这两个工具主要的区别如下表:
来自为知笔记(Wiz)
除此之外,在Android中,androidSDK中集成了Apache的HttpClient模块,用来提供高效的、最新的、功能丰富的支持 HTTP 协议工具包,并且它支持 HTTP 协议最新的版本和建议。使用HttpClient可以快速开发出功能强大的Http程序。 HttpURLConnection和HttpClient区别 HttpClient是个很不错的开源框架,封装了访问http的请求头,参数,内容体,响应等等, HttpURLConnection是java的标准类,什么都没封装,用起来太原始,不方便,比如重访问的自定义,以及一些高级功能等。
这两个工具主要的区别如下表:
对比项目 | URLConnection | HTTPClient |
---|---|---|
提交方式(Methods) | HEAD, GET, POST, PUT, DELETE, TRACE, OPTIONS | HEAD, GET, POST, PUT, DELETE, TRACE, OPTIONS, WEBDav, IPP, 甚至各种自定义提交方式 |
响应(Response Codes) | 只能获取http状态码小于400的状态码,响应头信息(headers),响应内容.对于响应状态码为4xx或者5xx获取response的任何信息都只会抛出IOException | 任何时候都可以获取响应的任何信息:响应状态码,响应头信息,响应内容信息等等。 |
代理和SOCKS | 支持,SOCKS仅支持4 | 支持,SOCKS支持4和5 |
认证(Authorization) | 支持Basic、早期的Digest JDK1.2+(不支持现在的Digest authentication),甚至不能处理apache返回的Digest信息 | 支持Basic、Digest Authentication、自定义的其他认证方案 |
Cookies | 不支持 | 支持 |
请求输出流 (True request output streams) | 请求发送之前,所有的数据都被缓存起来 | 通过socket直接输出HttpOutputStream |
响应输入流 (True response input streams) | JDK1.2-支持,1.3+不支持chunked encoding(不支持大多数推送服务器的响应) | 支持 |
长连接 (Persistent Connections) | JDK1.2- HTTP/1.0 Keep-Alive,JDK1.3+ HTTP/1.1 Persistent | 支持HTTP/1.0 Keep-Alive 和 HTTP/1.1 Persistent |
Pipelining of Requests | 不支持 | 支持 |
设置超时 | 不支持 | 支持 |
处理HTTP之外的协议 | 支持如:ftp, gopher, mailto,文件系统 | 不支持 |
处理HTTPs | 支持部分SSL,如JSSE,前提是客户端必须安装 | 可以通过补丁的方式使用免费或者收费的SSL |
开源 | 否 | 是 |
相关文章推荐
- HTTP协议简介
- DNS 在企业中的网络中的应用
- java socket tcp(服务器循环检测)
- iOS开发之网络篇-各种网络状态码
- 傻瓜都能看懂的网络流ek算法(poj1273)
- 通达OA 小飞鱼老师OA工作流设计课程教学网络公开课之HTML基础(一)
- 通达OA 小飞鱼老师OA工作流设计课程教学网络公开课之HTML基础(一)
- Power Network 网络流入门题)
- hdu1532Drainage Ditches裸的网络流
- iOS开发——网络篇——HTTP/NSURLConnection(请求、响应)、http响应状态码大全
- 黑马程序员_网络编程学习笔记
- Java基础-多线程下载(网络编程-多线程)
- 寒冰王座(http://acm.hdu.edu.cn/showproblem.php?pid=1248)
- 【线性规划与网络流24题 1】飞行员配对方案
- 小点滴——oracle 11g登陆不到控制台https://localhost:1158/em/的解决
- http tcp/ip socket之间的关系
- HTTP协议
- http://blog.163.com/gobby_1110/blog/static/29281715201352004329356/
- TCP/IP握手
- hdu 1532(poj 1273) Drainage Ditches (网络流·最大流)