關於volley 網絡請求框架 建議看 CSDN郭霖大神的四篇文章
開發前準備
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
來源:簡書
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。