成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Android API 最佳使用實踐與學習

移動開發 Android
Android應用程序中集成第三方API已十分流行。應用程序都有自己的網絡操作和緩存處理機制,但是大部分比較脆弱,沒有針對網絡糟糕情況進行優化。

現在,Android應用程序中集成第三方API已十分流行。應用程序都有自己的網絡操作和緩存處理機制,但是大部分比較脆弱,沒有針對網絡糟糕情況進行優化。感謝Square lnc 這家有創新精神的公司,將信用卡商業交易帶到手機上。現在有了一系列高質量開源庫,支持在Android應用程序中集成。

做什么,如何做?

現在,我們要依次學習使用Retrofit、OKHttp和GSON,簡單快速的集成REST API。使用這個組合,我們需要從Twitch.tv下載并解析一些數據。跟著下面的步驟可以在幾分鐘內,不用寫繁瑣的模板代碼,完成大部分的REST API集成。

學習

Retrofit

Retrofit簡化了從Web API下載數據,解析成普通的Java對象(POJO)。例如,要從GitHub 上下載用戶倉庫的信息,你只需要編寫下面的幾行:

  1. @GET("/users/{user}/repos"
  2. List listRepos(@Path("user") String user); 

另外,你需要創建倉庫信息類和數據類型。這些代碼也可以自動生成,下面會介紹如何自動生成。

整個過程很簡單,類似發送一次有參數的請求或發送POST或HEAD。如何連接不同類型的API,請查看說明文當。

Retrofit的特性之一可以將處理邏輯添加到請求和響應中。你可以添加數據到http請求頭部,也可以攔截驗證失敗的響應重定向到登錄界面。

OKHttp

OKHttp是Android版Http客戶端。 非常高效,支持SPDY、連接池、GZIP和 HTTP 緩存。默認情況下,OKHttp會自動處理常見的網絡問題,像二次連接、SSL的握手問題。如果你的應用程序中集成了OKHttp,Retrofit默認 會使用OKHttp處理其他網絡層請求。

GSON

GSON是將JSON解析成POJO的Java庫。GSON也可以將POJO解析成JSON。在Android中,數據對象存儲在SharePreference更加方便。

要使用GSON,首先需要創建相應的POJO數據,再用GSON解析為POJO對象。解析過程簡單且非常高效。需要了解如何創建可以被GSON解析的POJO對象,請查看說明文檔。Retrofit使用GSON解析JSON數據。

開始Coding

添加庫文件到工程

  1. 下載Retrofit、OKHttp、GSON庫文件。
  2. 逐個添加jar文件到你的工程中。
  3. 如果使用Android Studio,可以使用gradle同步這個工程。

查找或者編寫API

你可能已有一份API,如果你還在尋找API目錄,我推薦ProgrammableWeb。在這個教程中,我們會解析Twitch.Tv的數據流。請求格式請參考說明手冊。Twicht.tv請求數據流的JSON格式:
http://api.justin.tv/api/stream/list.json

展示輸出

展示一些API返回的數據,下面的示例是由于是一個GET請求,只能在瀏覽器中運行,返回數據如下:

  1. [{"broadcast_part"4"featured"true"channel_subscription"true"audio_codec""uncompressed""id""6640712464""category""gaming""title""Fnatic xPeke, Normals(ranked down) on smurf""geo""DE""video_height"1080"site_count"8014"embed_enabled"true"channel": {"subcategory"null"producer"true"image_url_huge""http://static-cdn.jtvnw.net/jtv_user_pictures/xpeke-profile_image-a182a5fe5a8f239b-600x600.jpeg""timezone""Europe/Madrid""screen_cap_url_huge": “http://static 

創建POJO

這部分很有趣,用我們獲取到的數據自動創建對應的POJO。使用jsonschema2pojo,導入包名、類名和JSON數據,保存為私有類型。示例中展示的構造器無法使用,因為JSON數據的根元素是個數組,不是對象。所以我只貼出了數組的***個元素。展示相關的圖片示例。

POJO-Generator

集成POJOs

將自動產生的POJOs粘貼到工程中就可以了。在我的示例工程中,他們在models包中。

使用Retrofit下載(解析)API

創建REST Adapter

創建Adapter,類似設置endPoint。

  1. RestAdapter restAdapter = new RestAdapter.Builder() 
  2. .setEndpoint("http://api.justin.tv/api"
  3. .build(); 

定義API接口

為需要連接的endPoint定義接口。下面示例中,使用limit和offset,這兩個參數用來控制請求數據位置和大小。詳細說明請參考API文檔

  1. public interface TwitchTvApiInterface { 
  2. @GET("/stream/list.json"
  3. void getStreams(@Query("limit"int limit, @Query("offset"int offset, Callback<List> callback);} 

你可能會注意到,我們期望返回的是一組JustinTvStreamData對象,也就是我們剛才自動產生的POJO。關于如何定義這個接口的更多信息,請參考Retrofit說明文檔

創建Twitch.tv 服務

現在我們已經建立了endPoint,定義了需要的接口。下面需要創建Twitch.TV服務,發送請求。

  1. TwitchTvApiInterface twitchTvService = restAdapter.create(TwitchTvApiInterface.class

使用API

發送API請求十分簡單,只需要使用剛才創建的服務即可。

  1. twitchTvService.getStreams(ITEMS_PER_PAGE, pageNumber * ITEMS_PER_PAGE, new Callback<List>() { 
  2. @Override 
  3. public void success(List justinTvStreamData, Response response) { 
  4.     consumeApiData(justinTvStreamData); 
  5.   
  6. @Override 
  7. public void failure(RetrofitError retrofitError) { 
  8.     consumeApiData(null); 
  9. }}); 

這里有一點需要注意,Retrofit會在后臺線程下載并解析API數據,根據結果不同(成功或失?。┌l送到UI線程。Retrofit也支持在后臺自動下載(這里沒有顯示)。

數據處理趣事

現在我們用POJO數據做一些有趣的事情。在這個Demo中,展示了Twitch.Tv頻道的圖片和描述,使用Picasso Library 下載緩存圖片。

TwitchClient-576x1024

參考代碼

示例代碼下載。

責任編輯:閆佳明 來源: blog.jobbole
相關推薦

2013-06-13 09:21:31

RESTful APIRESTfulAPI

2016-12-27 08:49:55

API設計策略

2017-03-13 14:09:19

RESTful API實踐

2023-11-07 07:08:57

2014-12-17 09:46:30

AndroidListView最佳實踐

2018-12-04 09:00:00

API安全性令牌

2017-03-30 13:01:54

混合云學習實踐

2023-04-14 12:23:15

2009-07-07 16:13:39

JDK日志

2017-04-27 10:33:50

云計算

2018-09-28 05:18:41

2012-12-24 09:49:08

SaaSSaaS安全

2016-06-20 11:32:27

JS原型class

2017-02-06 09:20:23

JavaScript實踐

2009-07-29 17:52:29

ibmdwJava

2011-08-18 11:05:21

jQuery

2023-07-21 01:12:30

Reactfalse?變量

2017-05-19 10:03:31

AndroidBaseAdapter實踐

2023-12-06 07:13:16

RESTAPI客戶端

2024-05-13 13:13:13

APISpring程序
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一区二区三区精品视频 | 日韩一区二区免费视频 | 免费观看一级特黄欧美大片 | 免费看片国产 | 亚洲精品99999| 亚洲高清在线观看 | 日韩免费视频 | 国产一区亚洲 | 欧美操操操 | 中文字幕第一页在线 | 男女午夜免费视频 | 国产精品色 | 五月婷婷激情网 | 日韩视频在线免费观看 | 国产精品国产三级国产aⅴ中文 | 久久久久国产一区二区三区四区 | 精品视频在线观看 | 日韩成人在线观看 | 99久久久无码国产精品 | 精品国产18久久久久久二百 | 午夜精品一区二区三区在线观看 | 久久综合国产精品 | av在线免费不卡 | 成人精品在线视频 | 天天澡天天操 | 久久9久| 久久精品免费观看 | 国产成人精品免费视频 | 91精品国产91 | 国产精品久久久久久久久久三级 | 人碰人操 | 免费精品在线视频 | 天天澡天天操 | 欧美视频免费在线 | 成人免费观看网站 | 久久久久久久久久久久一区二区 | 欧美video | 国产成人免费一区二区60岁 | 久久综合伊人 | 免费看a | 国产精品成人一区二区三区夜夜夜 |