标准java http和 apach httpclient总结

http除了标准的java接口外,还有apach开源项目也提供了http的api,简称httpclient
这种http的使用更为方便简单,httpclient封装了http的请求、身份验证和连接管理等特性,它主要实现了abstractHttpClient、DefaultHttpClient和AndroidHttpClient

androidHttpClient是使用android原生的代码实现的,不能直接创建,只能通过newInstance获取
DefaultHttpClient是使用apache开源项目实现的

android相对于default做了一些改进,使其更适应用android等嵌入式设备,使用方法差不多
1. 关掉了过期检查
2. 可以设置连接超时参数和读取数据超时
3. 关掉了重定向
4. 如果服务器支持可以使用gzip压缩方式传递数据

httpclient客服端连接服务器主要分为以下几个步骤:
    1. 创建HttpClient 
    2. 创建对应的请求 Get -- HttpGet   Post  -- HttpPost
    3. 设置请求参数,Get使用字符串添加到URL后面   POST则需要使用setEntity(HttpEntity)设置参数
    4. 执行连接服务器  httpClient.execute(HttpGet/HttpPost) 发送请求,并返回HttpResonse
    5. 调用HttpResponse对应的流方法,进行数据的读取或写入

标准的Java http api和httpClient的区别:
1. 标准java的使用原始的api,运行消耗内存小,减少网络使用,运行速度快和节省电池,更适合在移动设备上使用
2. apache项目的httpclient使用方便灵活,而且功能稳定,少有bug;

并且android 2.2以前标准的java http有一个bug,响应输入流inputStream.close()的时候将会阻碍连接池的连接,会出现异常,不过2.3以后就修改了
posted @   帅气好男人_jack  阅读(6)  评论(0编辑  收藏  举报  
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示