`

android 中对apache httpclient及httpurlconnection的选择

阅读更多
  在官方blog中,android工程师谈到了如何去选择apache client和httpurlconnection的问题:
  原文见http://android-developers.blogspot.com/2011/09/androids-http-clients.html
这里小结下几点。

1) apache httpclient比较稳定点,少BUG,但由于API的关系,扩展改造麻烦点,
所以android team现在不鸟这东西了基本

2) httpurlconnection比较轻便,灵活,易于扩展,在2。2前有个BUG,
见http://code.google.com/p/android/issues/detail?id=2939
  可以通过如下代码去解决:
 
private void disableConnectionReuseIfNecessary() {  
  // HTTP connection reuse which was buggy pre-froyo   
 if (Integer.parseInt(Build.VERSION.SDK) < Build.VERSION_CODES.FROYO) {        System.setProperty("http.keepAlive", "false");   
 }
}

3) 在Gingerbread中,httpurlconnection会增加对压缩报文头的处理,服务端可以用
GZIP,详细见:
  http://developer.android.com/reference/java/net/HttpURLConnection.html

4) 对HTTPURLCONECTION中,在3。0后以及4。0中都进行了改善,比如对HTTPS的支持,
在4。0中,还增加了对缓存的支持呢!比如下面的代码:
private void enableHttpResponseCache() 
{  
  try {
        long httpCacheSize = 10 * 1024 * 1024; // 10 MiB    
    File httpCacheDir = new File(getCacheDir(), "http");    
    Class.forName("android.net.http.HttpResponseCache").getMethod("install", File.class, long.class.invoke(null, httpCacheDir, httpCacheSize);   
 } 
catch 
(Exception httpResponseCacheNotAvailable) {  
  }
}



  最后的建议,Gingerbread后的版本,都建议用httpurlconnection,获得更高的性能
5
1
分享到:
评论

相关推荐

    Android中HttpURLConnection与HttpClient的使用与封装

     本文并不针对HTTP协议的具体内容,仅探讨android开发中使用HTTP协议访问网络的两种方式——HttpURLConnection和HttpClient  因为需要访问网络,需在AndroidManifest.xml中添加如下权限 &lt;uses android:name=...

    Android移动开发-使用OkHttp读取网络资源的实现

    Android网络框架之OkHttp是一个处理网络请求的开源项目,是Android端最火热的轻量级框架,由移动支付Square公司贡献(该公司还贡献了Picasso)用于替代HttpUrlConnection和Apache HttpClient(android API23 6.0 里...

    Android网络框架(Retrofit+Okhttp+Rxjava)、MVP模式(Dagger)

    可是在 Android 5.0 的时候 Google 就不推荐使用 HttpClient 了,到了 Android 6.0 (api 23) SDK,不再提供 org.apache.http.* (只保留几个类), 因此,设置 android SDK 的编译版本为23时,且使用了 httpClient 相关...

    OkHttp基本使用教程(安卓端http请求框架)

    android网络请求框架之OkHttp,一个处理网络请求的开源项目,是安卓端最火热的轻量级框架,用于替代HttpUrlConnection和Apache HttpClient(android API23 6.0里已移除HttpClient,但仍可引入Jar包使用)。 OkHttp是一个...

    Android实验七.doc

    4、 在 AndroidManifest.xml 中声明权限 &lt;uses-permission android:name="android.permission. INTERNET "/&gt; 实验结果截图: 图表 1 选择城市界面 图表 2 城市天气界面 三、实验分析与小结: Socket通信开发步骤 ...

    Android网络请求之OkHttp

    用于替代HttpUrlConnection和Apache HttpClient(android API23 里已移除HttpClient) OkHttp是一款优秀的HTTP框架,它支持get请求和post请求,支持基于Http的文件上传和下载,支持加载图片,支持下载文件透明的GZIP...

    疯狂Android讲义源码

     13.3.2 使用Apache HttpClient 501  13.4 使用WebView视图  显示网页 505  13.4.1 使用WebView浏览网页 506  13.4.2 使用WebView加载HTML  代码 507  13.5 使用Web Service进行  网络编程 508  13.5.1 Web...

    Android静默安装常用工具类

    更详细的设置可以直接使用HttpURLConnection或apache的HttpClient。 源码可见HttpUtils.java,更多方法及更详细参数介绍可见HttpUtils Api Guide。 2、DownloadManagerPro Android系统下载管理DownloadManager增强...

    android 常用工具类

    JSONUtils工具类,可用于方便的向Json中读取和写入相关类型数据,如: String getString(JSONObject jsonObject, String key, String default...更详细的设置 可以直接使用HttpURLConnection或apache的HttpClient。

    Android实现多线程下载图片的方法

    这里AndroidHttpClient是SDK 2.2中新出的方法,API Level为8,大家需要注意下,静态访问可以直接调用,如果SDK版本较低可以考虑Apache的Http库,当然HttpURLConnection 或URLConnection也可以。 static Bitmap ...

    okhttp-3.9.1

    android网络框架之OKhttp:一个处理网络请求的开源项目,是安卓端最火热的轻量级框架,由移动支付Square公司贡献(该公司还贡献了Picasso)用于替代HttpUrlConnection和Apache HttpClient(android API23 6.0里已移除...

    okHttp请求工具类

    android网络框架之OKhttp[1] 一个处理网络请求的开源项目,是安卓端最火热的轻量级框架,由移动支付Square公司...用于替代HttpUrlConnection和Apache HttpClient(android API23 6.0里已移除HttpClient,现在已经打不出来)

    okHttp所有jar包

    Android端最火热的轻量级框架,由移动支付Square公司贡献(该公司还贡献了Picasso)用于替代HttpUrlConnection和Apache HttpClient(android API23 6.0 里已移除HttpClient)。 OkHttp不仅在接口封装上画面做的简单...

    Android网络通信的实现方式

    基于Http协议:HttpClient、HttpURLConnection、AsyncHttpClient框架等 基于Socket: (1)针对TCP/IP的Socket、ServerSocket (2)针对UDP/IP的DatagramSocket、DatagramPackage (3)Apache Mina框架 一、...

    okio-1.12jar

    okio-1.12jar适用于使用okhttp 来进行网络编程android网络框架之OKhttp [1] 一个处理网络请求的开源项目,是...用于替代HttpUrlConnection和Apache HttpClient(android API23 6.0里已移除HttpClient,现在已经打不出来)

    Volley-demo-master

    Android 提供了两个 HTTP 客户端AndroidHttpClient (扩展自 apache HTTPClient)和HttpUrlConnection来发出 HTTP 请求。 两者都有自己的优点和缺点。 在开发应用程序时,我们编写处理所有 HTTP 请求的 HTTP 连接类...

    Android图片加载案例分享

    HttpURLConnection和HttpClient都可以访问网络,前者是Java的标准类,后者是Apache的一个开源项目,两者使用起来效果一样,但后者更为简单。  以下是针对前者完成的一个实例: 首先写好布局文件: &lt;...

    疯狂Android讲义.part1

    13.3.2 使用Apache HttpClient 501 13.4 使用WebView视图显示 网页 506 13.4.1 使用WebView浏览网页 506 13.4.2 使用WebView加载HTML 代码 507 13.5 使用Web Service进行网络 编程 508 13.5.1 Web Service简介 509 ...

    okhttp-2.1.0.jar okip-1.0.1.jar

    1 支持SPDY,允许所有同一主机的...okhttp-urlconnection模块实现了都很熟悉的java.net.HttpURLConnection的API,okhttp-apache模块实现了Apache的HttpClient的API。OKHTTP支持Android2.3以上,Java支持最低版本1.7。

Global site tag (gtag.js) - Google Analytics