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

来源:http://www.cnblogs.com/Linccy/archive/2016/07/11/5659082.html
-Advertisement-
Play Games

最近在做一個Android的新聞客戶端,感覺收穫頗豐。 這裡分享一下Volley獲取網路數據的方法 Volley是Google I/O 2013推出的網路通信庫,它的拓展性很強,使用它能使代碼變得更健壯,Volley在提供了高性能網路通訊功能的同時,對網路圖片載入也提供了良好的支持 下麵主要介紹一下 ...


最近在做一個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獲取的,使用方法請參考博主的下一篇文章)

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

效果圖:

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • overflow:hidden這個CSS樣式是大家常用到的CSS樣式,但是大多數人對這個樣式的理解僅僅局限於隱藏溢出,而其實它還有清除浮動這個功能。 這段代碼是一個做淘寶搜索框中的一段代碼,這裡overflow:hidden就起到了一個清除浮動的效果。 具體代碼可以看慕課網http://www.im ...
  • 還是接著之前說過的最近在寫一個BootStrap網頁....然後要用富文本編輯器,隨便搜了下就選了這貨 然後發現了很尷尬的問題...圖片上傳功能無效....然後各種搜索各種無果...最後怒翻Summernote官方文檔總算解決了,總之寫下解決過程 後端部分就不提供代碼了,滿大街都是,這裡假設後端拿到 ...
  • 一,工程圖。 二,代碼。 RootViewControlle.m //點擊任何處,頁面翻轉 -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { FirstViewController *first=[[FirstView ...
  • 枚舉(enum)類型是Java 5新增的特性,它是一種新的類型,允許用常量來表示特定的數據片斷,而且全部都以類型安全的形式來表示。 1、常量的使用 在JDK1.5之前,我們定義常量都是:publicstaticfianl....。現在好了,有了枚舉,可以把相關的常量分組到一個枚舉類型里,而且枚舉提供 ...
  • 直播類送禮動畫<豪華禮物+小禮物>:代碼會持續更新,現直播的app里內有太多的動畫,由於時間關係不能一次共用所有動畫聘為,這次先共用幾個比較火爆的動畫。 支持真機和模擬器上運行,最低支持iOS8.0,具體的代碼屬性,代碼中都有註釋,有疑問之處可以聯繫本博主:NegHao,有不足之處,或者錯誤的地方歡 ...
  • 在程式中如果需要監聽電話狀態,可以引入CoreTelephony框架,這個框架包含了電話相關的API,可以實現監測來電,查看運營商信息等功能。下麵就是具體的實現監測來電的代碼。一定要把center寫成一個單獨的屬性,並且是強引用(strong),否則如果在viewDidLoad方法里創建center ...
  • anddroid studio的記憶體修改 昨天有位朋友問到了下麵的一個問題 這個判斷為android studio的分配的記憶體不夠用。 據我的瞭解造成這個的原因主要有以下幾個方面: 1.電腦的記憶體本來就小 2.開的程式太多 3.程式的代碼占用的記憶體太多 4.設置的android studio的記憶體大 ...
  • Masonry是iOS在控制項佈局中經常使用的一個輕量級框架,Masonry讓NSLayoutConstraint使用起來更為簡潔。Masonry簡化了NSLayoutConstraint的使用方式,讓我們可以以鏈式的方式為我們的控制項指定約束。本篇博客的主題不是教你如何去使用Masonry框架的,而是 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...