C_J_X 2016-06-22 03:26 采纳率: 0%
浏览 1729

retrofit2+rxjava报错,接口使用call可以正常获取天气数据???

 接口:
 @GET("adat/cityinfo/{flag}")
    Observable<Weather> getWeather(@Path("flag") String flag);

 请求代码:
 retrofit_weather = new Retrofit.Builder()
                            .baseUrl(WEATHERIP)
                            .addConverterFactory(GsonConverterFactory.create())
                            .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
                            .build();
                    InfoService serverse = retrofit_weather.create(InfoService.class);
                    serverse.getWeather("101190404.html")
                            .subscribeOn(Schedulers.io())
                            .observeOn(AndroidSchedulers.mainThread())
                            .subscribe(new Subscriber<Weather>() {
                                @Override
                                public void onCompleted() {

                                }

                                @Override
                                public void onError(Throwable e) {

                                }

                                @Override
                                public void onNext(Weather weather) {
                                    text2.setText(weather.getWeatherinfo().getWeather());
                                }
                            });

报错:
图片说明

  • 写回答

4条回答 默认 最新

  • C_J_X 2016-06-22 03:31
    关注
    接口:
         @GET("adat/cityinfo/{flag}")
        Observable<Weather> getWeather(@Path("flag") String flag);
    
        @GET("adat/cityinfo/{flag}")
        Call<Weather> get(@Path("flag") String flag);
    
            实现:
                                            //第二种
                        retrofit_weather = new Retrofit.Builder()
                                .baseUrl(WEATHERIP)
                                .addConverterFactory(GsonConverterFactory.create())
                                .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
                                .build();
                        InfoService serverse = retrofit_weather.create(InfoService.class);
    
                        serverse.getWeather("101190404.html")
                                .subscribeOn(Schedulers.io())
                                .observeOn(AndroidSchedulers.mainThread())
                                .subscribe(new Subscriber<Weather>() {
                                    @Override
                                    public void onCompleted() {
    
                                    }
    
                                    @Override
                                    public void onError(Throwable e) {
    
                                    }
    
                                    @Override
                                    public void onNext(Weather weather) {
                                        text2.setText(weather.getWeatherinfo().getWeather());
                                    }
                                });
    
                        //第三种
                        retrofit2 = new Retrofit.Builder()
                                .baseUrl(WEATHERIP)
                                .addConverterFactory(GsonConverterFactory.create())
                                .build();
    
                        InfoService infoService2 = retrofit2.create(InfoService.class);
                        Call<Weather> call2 = infoService2.get("101190404.html");
                        call2.enqueue(new Callback<Weather>() {
                            @Override
                            public void onResponse(Call<Weather> call, Response<Weather> response) {
                                Weather weather = response.body();
                                text3.setText(weather.getWeatherinfo().getCity());
                            }
    
                            @Override
                            public void onFailure(Call<Weather> call, Throwable t) {
                                text3.setText(t.getMessage());
                            }
                        });
                    }
                });
    

    第三种可以正常获取,第二种不行

    评论

报告相同问题?

悬赏问题

  • ¥20 删除和修改功能无法调用
  • ¥15 kafka topic 所有分副本数修改
  • ¥15 小程序中fit格式等运动数据文件怎样实现可视化?(包含心率信息))
  • ¥15 如何利用mmdetection3d中的get_flops.py文件计算fcos3d方法的flops?
  • ¥40 串口调试助手打开串口后,keil5的代码就停止了
  • ¥15 电脑最近经常蓝屏,求大家看看哪的问题
  • ¥60 高价有偿求java辅导。工程量较大,价格你定,联系确定辅导后将采纳你的答案。希望能给出完整详细代码,并能解释回答我关于代码的疑问疑问,代码要求如下,联系我会发文档
  • ¥50 C++五子棋AI程序编写
  • ¥30 求安卓设备利用一个typeC接口,同时实现向pc一边投屏一边上传数据的解决方案。
  • ¥15 SQL Server analysis services 服务安装失败