編輯:關於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<String>() {
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<String, String> getHeaders() throws AuthFailureError
3 {
4 Map<String, String> headers = new HashMap<String, String>();
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<String>() {
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<String, String> getHeaders() throws AuthFailureError {
23 Map<String, String> headers = new HashMap<>();
24 headers.put("apikey", Constant.APIKET);
25 return headers;
26 }
27 };
28 mQueue.add(stringRequest);
29 mQueue.start();
30 }
注:(下圖的圖片是通過picasso獲取的,使用方法請參考博主的下一篇文章)
就這麼簡單,並不要像一般情況下自己寫線程、和各種重復勞動
效果圖:

APK瘦身記,如何實現高達53%的壓縮效果,apk53%
APK瘦身記,如何實現高達53%的壓縮效果,apk53%作者:非戈@阿裡移動安全 1、我是怎麼思考這件事情的 APK是Android系統安裝包的文件格式,關於這個話題其實
ListView嵌套出現的問題,listview嵌套出現
ListView嵌套出現的問題,listview嵌套出現 項目中一個列表子項中也需要用到列表,這就不由得使我想
Android 系統API實現數據庫的增刪改查和SQLite3工具的使用,androidsqlite3
Android 系統API實現數據庫的增刪改查和SQLite3工具的使用,androidsqlite3在《Android SQL語句實現數據庫的增刪改查》中介紹了使用sq
關於android百度地圖sdk的配置常見問題,androidsdk
關於android百度地圖sdk的配置常見問題,androidsdk1,模擬機上在創建地圖的xml的時候不能創建<MapView>,需要創建<Textu