关于volley 网络请求框架 建议看 CSDN郭霖大神的四篇文章
volley 的设计思想:
1,Volley通过维护一个请求队列来实现网络请求。它的底层有一个缓存线程和一个线程池,这样一来Volley的开发效率就比较低了,在上传大文件方面处理也不好,同时在功能拓展性方面也有欠缺
2,非常适合对数据量不大,但通信频繁的网络操作,而对于大数据量的网络操作,比如下载文件等则很糟糕。volley项目已暂停维护,建议使用okhttp框架
开发前准备
Gradle:最新包的下载地址:RxJava&RxAndroid ,Retrofit,OkHttp,Volley
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'io.reactivex:rxandroid:1.1.0'
compile 'io.reactivex:rxjava:1.1.3'
compile 'com.squareup.retrofit2:retrofit:2.0.2'
compile 'com.squareup.retrofit2:converter-gson:2.0.2'
compile 'com.squareup.retrofit2:adapter-rxjava:2.0.2'
compile 'com.squareup.okhttp3:okhttp:3.2.0'
compile 'com.squareup.okhttp3:logging-interceptor:3.2.0'
compile 'com.mcxiaoke.volley:library:1.0.19'
}
网络权限:
<uses-permission android:name="android.permission.INTERNET"/>
OkHttp & Volley
Volley(项目暂停维护)
说OkHttp之前不得不说一下Volley,作为曾经比较强大的一个网络请求库它被Google官方接受并于2013年Google I/O上推出,其实Volley内部封装使用的是HttpURLConnection和HttpClient。如果想要深入了解一下Volley可以参考CSDN郭霖大神的四篇文章
由于Volley不是本篇的重点,这里只是给出使用Volley Http Get请求的简单例子:
public void loadDataWithVolley(){
RequestQueue mQueue = Volley.newRequestQueue(context);
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(URL, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
log.d(response.toString());
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
log.e(error);
}
});
mQueue.add(jsonObjectRequest);
}
通过上面的的代码可以看出:Volley通过维护一个请求队列来实现网络请求。它的底层有一个缓存线程和一个线程池,这样一来Volley的开发效率就比较低了,在上传大文件方面处理也不好,同时在功能拓展性方面也有欠缺。于是,Okhttp逐渐深入人心:
作者:Torang
链接:http://www.jianshu.com/p/b084b6d91260
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。