请求网络
object GetRetrofitService {
lateinit var client: OkHttpClient
fun init() {
client = OkHttpClient.Builder()
.connectTimeout(20, TimeUnit.SECONDS)
.writeTimeout(20, TimeUnit.SECONDS)
.readTimeout(20, TimeUnit.SECONDS)
.build()
}
val retrofitService: RetrofitService
get() {
val retrofit = Retrofit.Builder()
.baseUrl(AppConstants.URL)
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.client(client)
.build()
return retrofit.create(RetrofitService::class.java)
}
}
接口
//新闻
@GET("toutiao/index")
fun getNews(@Query("type") cityName: String,
@Query("key") key: String): Observable<NewsBean>
解析数据,接口回调
fun getNews(type: String, key: String) {
observable = GetRetrofitService.retrofitService.getNews(type, key)
subscription = observable!!
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(object : Subscriber<NewsBean>() {
override fun onError(e: Throwable?) {
onNewsBack!!.onError()
}
override fun onCompleted() {
}
override fun onNext(newsBean: NewsBean) {
onNewsBack!!.onSuccess(newsBean)
}
})
}