标准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以后就修改了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 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】