網絡請求篇---Volley框架


關於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
來源:簡書
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章