[译] 2019 年的 Android 网络 —— Retrofit 与 Kotlin 协程

2019 年的 Android 网络 —— Retrofit 与 Kotlin 协程

2018 年,Android 圈发生了许多翻天覆地的变化,尤其是在 Android 网络方面。稳定版本的 Kotlin 协程的发布极大地推动了 Android 在处理多线程方面从 RxJava 到 Kotlin 协程的发展。 本文中,我们将讨论在 Android 中使用 Retrofit2Kotlin 协程 进行网络 API 调用。我们将调用 TMDB API 来获取热门电影列表。

概念我都懂,给我看代码!!

如果你在 Android 网络方面有经验并且在使用 Retrofit 之前进行过网络调用,但可能使用的是 RxJava 而不是 Kotlin 协程,并且你只想看看实现方式,请查看 Github 上的 readme 文件

Android 网络简述

简而言之,Android 网络或者任何网络的工作方式如下:

  • 请求 —— 使用正确的头信息向一个 URL(终端)发出一个 HTTP 请求,如有需要,通常会携带授权的 Key。
  • 响应 —— 请求会返回错误或者成功的响应。在成功的情况下,响应会包含终端的内容(通常是 JSON 格式)。
  • 解析和存储 —— 解析 JSON 并获取所需的值,然后将其存入数据类中。

Android 中,我们使用:

  • Okhttp —— 用于创建具有合适头信息的 HTTP 请求。
  • Retrofit —— 发送请求。
  • Moshi/ GSON —— 解析 JSON 数据。
  • Kotlin 协程 —— 用于发出非阻塞(主线程)的网络请求。
  • Picasso / Glide —— 下载网络图片并将其设置给 ImageView。

显然这些只是一些热门的库,也有其他类似的库。此外这些库都是由 Square 公司 的牛人开发的。点击 Square 团队的开源项目 查看更多。

开始吧

Movie Database(TMDb)API 包含所有热门的、即将上映的、正在上映的电影和电视节目列表。这也是最流行的 API 之一。

TMDB API 需要 API 密钥才能请求。为此:

在版本控制系统中隐藏 API 密钥(可选但推荐)

获取 API 密钥后,按照下述步骤将其在 VCS 中隐藏。

  • 将你的密钥添加到根目录下的 local.properties 文件中。
  • build.gradle 中用代码来访问密钥。
  • 之后在程序中通过 BuildConfig 就可以使用密钥了。
//In local.properties
tmdb_api_key = "xxxxxxxxxxxxxxxxxxxxxxxxxx"

//In build.gradle (Module: app)
buildTypes.each {
        Properties properties = new Properties()
        properties.load(project.rootProject.file("local.properties").newDataInputStream())
        def tmdbApiKey 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值