RxJava+Retrofit+OkHttp请求网络数据

对于rxjava 研究的还不是很深刻,先学会怎么用,再去看源码吧。记录一个通过RxJava+Retrofit+OkHttp框架请求网络数据的小案例:

这里以请求天气信息为例:

 String url = "https://api.seniverse.com/v3/weather/";
        OkHttpClient okHttpClient = new OkHttpClient();

        Retrofit retrofit = new Retrofit.Builder().baseUrl(url)
                .client(okHttpClient)
                .addConverterFactory(GsonConverterFactory.create())
                .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
                .build();

        retrofit.create(Service.class)
                .getWeather(AppCommon.XINZHI_KEY, "beijing")
                .subscribeOn(Schedulers.io())//指定网络请求所在的线程
                .observeOn(AndroidSchedulers.mainThread())//指定请求以后需要操作的线程
                .subscribe(weatherBeanHttpResult -> {
                    Log.e("wh", "返回天气" + weatherBeanHttpResult.getResults().get(0).getNow().getText());

                });

Service类

@GET("now.json?")
    Observable<WeatherBean> getWeather(@Query("key") String key, @Query("location") String location);

网上优秀的帖子很多,学习以后会把自己的学习心得再发表一下,加深一下印象。

发布了36 篇原创文章 · 获赞 21 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/qq_15110579/article/details/79805457