Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android Volley 的基本使用/設置HTTP請求參數、apikey

Android Volley 的基本使用/設置HTTP請求參數、apikey

編輯:關於Android編程

最近在做一個Android的新聞客戶端,感覺收獲頗豐。

這裡分享一下Volley獲取網絡數據的方法

Volley是Google I/O 2013推出的網絡通信庫,它的拓展性很強,使用它能使代碼變得更健壯,Volley在提供了高性能網絡通訊功能的同時,對網絡圖片加載也提供了良好的支持

下面主要介紹一下Volley的StringRequest的使用方法

簡單的寫法是這樣的:

 1 /**
 2      * 獲取網絡數據 新聞卡片
 3      */
 4     private void getNewsData(String NewsType) {
 5         String URL = NewsType;//國內新聞列表
 6         StringRequest stringRequest = new StringRequest(Request.Method.GET, URL, new Response.Listener() {
 7             Gson gson = new Gson();
 8 
 9             @Override
10             public void onResponse(String response) {
11                 //得到網絡發送過來的字符串要做的操作,一般是轉換為Json等操作
12             }
13         }, new Response.ErrorListener() {
14 
15             @Override
16             public void onErrorResponse(VolleyError error) {
17 //請求失敗時要做的操作
18             }
19         }) {
20             
21         mQueue.add(stringRequest);//加入到請求隊列,不然是不會發送請求的
22         mQueue.start();
23     }

之前就犯了沒有寫add()的錯誤,中間的onresponse便不會執行,希望引以為戒

下面來介紹一下在Volley怎樣添加請求參數,如apikey httpArg等

需要重寫getHeaders方法:

1  @Override
2     public Map getHeaders() throws AuthFailureError
3     {
4     Map headers = new HashMap();
5     headers.put("Charset", "UTF-8");
6     headers.put("Content-Type", "application/x-javascript");
7     headers.put("Accept-Encoding", "gzip,deflate");
8     return headers;
9     }

可以在這裡面添加你想要的任何參數

下面給出一個范例:

 1 /**
 2      * 獲取網絡數據 新聞卡片
 3      */
 4     private void getNewsData(String NewsType) {
 5         String URL = NewsType;//國內新聞列表
 6         StringRequest stringRequest = new StringRequest(Request.Method.GET, URL, new Response.Listener() {
 7             Gson gson = new Gson();
 8 
 9             @Override
10             public void onResponse(String response) {
11                 NewsListResponseJson newsListJsonObject = gson.fromJson(response, NewsListResponseJson.class);
12                 newsItems = newsListJsonObject.getData();
13             }
14         }, new Response.ErrorListener() {
15 
16             @Override
17             public void onErrorResponse(VolleyError error) {
18 
19             }
20         }) {
21             @Override
22             public Map getHeaders() throws AuthFailureError {
23                 Map headers = new HashMap<>();
24                 headers.put("apikey", Constant.APIKET);
25                 return headers;
26             }
27         };
28         mQueue.add(stringRequest);
29         mQueue.start();
30     }

注:(下圖的圖片是通過picasso獲取的,使用方法請參考博主的下一篇文章)

就這麼簡單,並不要像一般情況下自己寫線程、和各種重復勞動

效果圖:

\

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved