连网框架有很多,那你可能问,为什么不用其他的联网开源框架呢?
xutils、okHttp、volley、android-async-http对比:
从xutils 2.1.5版本到的xutils 3.0,使用起来也是蛮方便的,但Xutils里面包含的东西相对来说比较杂,有数据库、图片缓存、注解、网络请求等等。但个人感觉太过复杂,有时我们只用到了一部分功能且多余的类,在编译时,也会参与编译。
volley是一个简单的异步http库,仅此而已。缺点是不支持同步,这点会限制开发模式;不能post大数据,所以不适合用来上传文件
android-async-http。与volley一样是异步网络库,但volley是封装的httpUrlConnection,它是封装的httpClient,而android平台不推荐用HttpClient了,所以这个库已经不适合android平台了。
okhttp是高性能的http库,支持同步、异步,而且实现了spdy、http2、websocket协议,api很简洁易用,和volley一样实现了http协议的缓存。
下面让我们先来看看,封装后是怎么使用的:
其实就是这么简单。
若是要自己设置缓存路径请看下面这段代码:
OkHttpClient.Builder builder = new OkHttpClient().newBuilder()
.connectTimeout(10, TimeUnit.SECONDS)//设置超时时间
.readTimeout(10, TimeUnit.SECONDS)//设置读取超时时间
.writeTimeout(10, TimeUnit.SECONDS);//设置写入超时时间
int cacheSize = 10 * 1024 * 1024; // 10 MiB
Cache cache = new Cache(App.getContext().getCacheDir(), cacheSize);
builder.cache(cache);
builder.addInterceptor(interceptor);
mOkHttpClient = builder.build();
下面是一个小Demo链接地址(因为代码注释写的相当详细,我这里就不依次讲了):
http://download.csdn.net/detail/jimtrency/9677428