【问题标题】:Retrofit: multiple query parameters in @GET改造:@GET 中的多个查询参数
【发布时间】:2017-06-05 17:39:27
【问题描述】:

@GET 中的多个参数有问题。如果我有两个,一切正常,但如果我有三个(我需要三个),它会跳过 onResponse 方法并执行 onFailure。有谁知道为什么?

这是界面

@GET("CalendarJson")
Call<List<Raspored>> getKalendar(
        @Query("department") String department,
        @Query("semester") String semester,
        @Query("year") int year);

Retrofit retrofit = new Retrofit.Builder()
        .baseUrl(basicUrl)
        .addConverterFactory(GsonConverterFactory.create())
        .build();


KalendarService kalendarService = retrofit.create(KalendarService.class);

这就是我所说的

KalendarService.kalendarService.getKalendar(department,semester,year).enqueue(new Callback<List<Raspored>>() {
        @Override
        public void onResponse(Call<List<Raspored>> call, Response<List<Raspored>> response) {
            if(response.isSuccessful()){
                raspored = response.body();
                //TODO
            }
        }

        @Override
        public void onFailure(Call<List<Raspored>> call, Throwable t) {
            Toast.makeText(getApplicationContext(), "Failure", Toast.LENGTH_SHORT).show();
        }
    });

【问题讨论】:

  • 你遇到了什么失败?

标签: java android get retrofit2


【解决方案1】:

我认为这与您的第三个参数的数据类型有关

【讨论】:

  • 但如果我删除第二个参数,一切正常。第三个参数是int year = calendar.get(Calendar.YEAR);
  • 不,我认为我不需要它。我有 url 我需要从中获取 json 数据,基于 url 中的三个参数
  • 你怎么知道它返回了正确的 json 数据?有了这三个参数,json 可以被解析为一个 'Raspored' 的列表,但有两个参数则不然。
猜你喜欢
  • 2013-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-28
  • 2019-05-15
  • 2016-01-18
  • 2016-01-16
相关资源
最近更新 更多