Android 的 HTTP Client 的使用

Android 包含了两种 HTTP Client:HttpURLConnectionApache HTTP Client。两者都支持 HTTPS,流上传和下载,访问超时设置,IPV6 和连接池。


Apache HTTP Client
DefaultHttpClient 和他的姊妹 AndroidHttpClient 都从 HTTP Client 继承而来。它们有大量、灵活的 API,实现也稳定,bug 少。
但是大量的 API 也使得 Android 团队在不破坏兼容性的情况下对其改进比较困难。所以 Android 团队现在对其的维护比较少了。


HttpURLConnection
HttpURLConnection 是一个通用的、轻量化的 HTTP Client。刚开始其实现过于简单,但是也比较容易稳固地改进。
Froyo(2.2)之前,HttpURLConnection 有一些令人沮丧的 bug。


Android 6.0 移出了对 Apache HTTP Client 的支持。如果你的 App 的 target API 高于等于 Android 2.3(API 9),应该使用 HttpURLConnection。HttpURLConnection 的性能更好,因为它通过自动压缩和响应缓存减少了网络请求,还减少电量消耗。如果你依然坚持时候用 Apache HTTP API 的话,你一定要在build.gradle
中声明:

android { useLibrary 'org.apache.http.legacy'}

即使加入这句话以后,也有可能出现如下编译错误:

" Unable to find optional library: org.apache.http.legacy"

解决办法:
1、看看目录E:\software\Android\sdk\platforms\android-23\optional 下有没有org.apache.http.legacy.jar 和 optional.json

optional.json

2、如果没有optional.json,则自己新建一个这样的文件,然后加入如下内容:

[  
  {  
    "name": "org.apache.http.legacy",  
    "jar": "org.apache.http.legacy.jar",  
    "manifest": false  
  }  
]  

本文是在以下文章中整合的:

http://www.jianshu.com/p/89853acef9b3

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,976评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,833评论 19 139
  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,745评论 2 45
  • # Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列...
    aimaile阅读 26,725评论 6 427
  • 人的一辈子,其实最开心的不是赚到了多少钱,而是赚到了多少陌生人的信任,久而久之成为朋友,并且一直信任你、选择你、支...
    一往直前阅读 1,418评论 0 0

友情链接更多精彩内容