使用retrofit進行網路請求
一、需求
訪問網路介面獲取星座資料
二、網路框架
一個基於 OkHttp 的 RESTful API 請求工具
Retrofit 在使用時其實就充當了一個介面卡(Adapter)的角色,主要是將一個 Java 介面翻譯成一個 HTTP 請求物件,然後用 OkHttp 去傳送這個請求
核心思想:動態代理—通俗來講,就是你要執行某個操作的前後需要增加一些操作,比如檢視使用者個人資訊前需要判斷使用者是否登入,使用者訪問資料庫後想清除使用者的訪問記錄等操作
三、實現步驟
1.確定網路的url介面
const val LAUNCH_URL = "http://域名:埠號/"
2.訪問介面將訪問得到的資料複製下來,按快捷鍵Alt+K
將複製的內容轉化成ConstellationLuck
這是用了JsonToKotlinClass外掛,將Json生對應的Bean
data class ConstellationLuck(
var astrology: String = " ",
var color: String = " ",
var day: String = " ",
var desc: String = " ",
var health: Double = 0.0,
var love: Double = 0.0,
var match: String = " ",
var money: Double = 0.0,
var number: Int = 0,
var synthetical: Double = 0.0,
var work: Double = 0.0
)
3.寫這個類的介面
interface LaunchService {
@GET("v1/xxx/detail")
suspend fun getTodayDetail(
@Query("consName") consName:String,
@Query("type") type:String
): ApiResult<ConstellationLuck>
@GET("v1/xxx/detail")
suspend fun getWeekDetail(
@Query("consName") consName: String,
@Query("type") type:String
):ApiResult<MutableList<ConstellationWeekLuck>>
}
4.通過Retrofit來請求介面
這是在繼承Application類中的onCreate方法中寫的
ScaffoldConfig.getInstance(this)
.setBaseUrl(LAUNCH_URL)
.debug(BuildConfig.DEBUG)
接下來就是在需要的活動中請求
private val service by lazy {
ScaffoldConfig.getRepositoryManager().obtainRetrofitService(LaunchService::class.java)
}
launch {
if (data != null) {
val todayConstellation = service.getTodayDetail(data as String, "today")
if (todayConstellation.status == STATUS_OK) {
constellationLuck = todayConstellation.data!!
Timber.d("99999-=====$constellationLuck")
//將拿到的資料constellation傳給陣列
setTodayValue(constellationLuck)
if (dayLuckList.size != 0) {
dayLuckList.clear()
}
initDayLuck()
initLuckRecyclerViewAdapter()
setOtherContext()
}else{
Timber.d("today網路出錯了2,55555")
}
}
}
相關文章
- Android網路請求(終) 網路請求框架RetrofitAndroid框架
- 使用Retrofit+RxJava實現網路請求RxJava
- Android中用Kotlin Coroutine(協程)和Retrofit進行網路請求和取消請求AndroidKotlin
- Retrofit網路請求原始碼解析原始碼
- 分分鐘使用Retrofit+Rxjava實現網路請求RxJava
- 輕鬆搞定Retrofit不同網路請求方式的請求引數配置,Retrofit常用註解的使用
- Retrofit原始碼解析之網路請求原始碼
- OkHttp、rxJava、Retrofit聯合網路請求(二)HTTPRxJava
- OkHttp、rxJava、Retrofit聯合網路請求(一)HTTPRxJava
- React Native探索(五)使用fetch進行網路請求React Native
- React Native 探索(五)使用 fetch 進行網路請求React Native
- 使用 http-proxy 對網路請求進行代理HTTP
- Kotlin中Retrofit網路請求簡單封裝Kotlin封裝
- Android使用Kotlin+Retrofit+Rxjava實現簡單的網路請求AndroidKotlinRxJava
- 輕鬆搞定Retrofit不同網路請求方式的請求引數配置,及常用註解使用
- Retrofit+okhttp+Rxjava封裝網路請求工具類HTTPRxJava封裝
- Android開發 - Retrofit 2 使用自簽名的HTTPS證書進行API請求AndroidHTTPAPI
- 使用 $fetch 進行 HTTP 請求HTTP
- Retrofit2.5怎麼做到網路請求的處理的?
- Kotlin + 協程 + Retrofit + MVVM優雅的實現網路請求KotlinMVVM
- Retrofit + Kotlin + MVVM 的網路請求框架的封裝嘗試KotlinMVVM框架封裝
- iOS 使用Moya網路請求iOS
- Android小知識-剖析Retrofit中網路請求的兩種方式Android
- Android網路請求(4) 網路請求框架VolleyAndroid框架
- Android網路請求(3) 網路請求框架OkHttpAndroid框架HTTP
- 原始碼分析Retrofit請求流程原始碼
- flutter網路請求框架dio基本使用Flutter框架
- 如何使用 Python 請求網路資源Python
- 網路請求了
- 網路請求優化之取消請求優化
- 如何優雅地取消Retrofit請求?
- Retrofit+Rxjava的資料請求RxJava
- HttpClient 進行soap請求HTTPclient
- Android小知識-剖析Retrofit中的網路請求流程以及相關引數Android
- Android Kotlin retrofit2 網路請求學習獲取微博熱搜列表AndroidKotlin
- 配置Retrofit網路框架及其使用框架
- vue(24)網路請求模組axios使用VueiOS
- HTTP網路請求原理HTTP