• Android HttpClient HttpURLConnection相关介绍


    Android HttpClient HttpURLConnection相关介绍

    遇到一个问题

    在android studio上用HttpClient编写网络访问代码的时候,发现该类无法导入并使用....百度了一会儿之后

    发现一个强大网友已经解决了。相关博客:http://stackoverflow.com/questions/32153318/httpclient-wont-import-in-android-studio

    究其原因:在Android 2.3及以上版本,使用的是HttpURLConnection,HttpClient已经过时;而在Android 2.2及以下版本,使用的是HttpClient。

    两者的区别

    相关博客:http://blog.csdn.net/guolin_blog/article/details/12452307

    下面是对该文章的一些总结:

    HttpClient:bug少,api多;也正是因为api过多,不利于升级维护和扩展

    HttpURLConnection:简单,容易使用和扩展。

    HttpURLConnection的注意点:

    • 自动开启gzip压缩功能。其中涉及到一个知识点:多线程断点下载文件

    如果启动了响应压缩的功能,HTTP响应头里的Content-Length就会代表着压缩后的长度,这时再使用getContentLength()方法来取出解压后的数据就是错误的了。

    关于如何关闭gzip压缩功能:urlConnection.setRequestProperty("Accept-Encoding", "identity");  

    • HTTPS-
      我们在Android 2.3版本中还增加了一些HTTPS方面的改进,现在HttpsURLConnection会使用SNI(Server Name Indication)的方式进行连接,使得多个HTTPS主机可以共享同一个IP地址。除此之外,还增加了一些压缩和会话的机制。如果连接失败,它会自动去尝试重新进行连接。这使得HttpsURLConnection可以在不破坏老版本兼容性的前提下,更加高效地连接最新的服务器。
    • 网络数据缓存-android4.0之后才加上

    关于选择哪个更好

    当然是选择新的那个啦:api简单易用。google那边也会不断的维护它。将来的方向肯定是性能越来越好,功能越来越全面

    当前也可以选择一些在github上面被广泛接受的开源项目。

    • volley
    • okhttp
    • android-async-http
  • 相关阅读:
    Linux 函数库
    Linux yum源码包安装和卸载
    Linux软件包管理 RMP包
    Linux软件包管理 RMP包管理
    Linux基本命令 vim命令(二)
    Linux基本命令 vim命令(一)
    Linux基本命令 关机命令
    【后缀表达式求解】No.3.栈-evaluate-reverse-polish-notation题解(Java版)
    对象输入输出流ObjectInputStream、ObjectOutputStream(对象的序列化与反序列化)
    手写二叉树-先序构造(泛型)-层序遍历(Java版)
  • 原文地址:https://www.cnblogs.com/zhou-guobao/p/5395499.html
走看看 - 开发者的网上家园