【问题标题】:Retrofit returns list with elements who have empty values改造返回具有空值元素的列表
【发布时间】:2018-08-20 00:29:37
【问题描述】:

您好,我正在使用https://trakt.docs.apiary.io/ Api,由于某种原因,当我执行顶级电影请求时,retrofit 会返回正常的电影列表。

@GET("/movies/popular")
fun getMovies(@Query("page") pageNo: Int, @Query("limit") limit: Int): Flowable<List<Movie>>

但是当我使用搜索时

 @GET("/search/{id_type}")
fun getMoviesForQuery(@Path("id_type") type: String,
                    @Query("query") query: String,
                    @Query("page") pageNo: Int?,
                    @Query("limit") limit: Int?): Flowable<List<Movie>>

它返回具有空值的电影列表。这就是我使用改造的方式:

 if (query == "") {
            compositeDisposable.add(moveApi.getMovies(pageNumber, params.requestedLoadSize).subscribe { movies ->
                callback.onResult(movies)
            })
        } else {
            compositeDisposable.add(
                    moveApi.getMoviesForQuery(movieType, query, ++pageNumber,
                            params.requestedLoadSize).subscribe { movies ->
                        callback.onResult(movies)
                    })
        }

是我做错了什么还是 api 坏了。

编辑:值得注意的是,当您收到搜索到的电影时,尽管为空,但不同搜索的大小是不同的。例如,如果我使用“gg”发出请求,我会收到 17 个结果,但是当我使用不同的字符串(例如“gggg”)时,我会收到 0 个结果。在我看来,这意味着请求是正确提出的,只是数据在某处丢失了。

【问题讨论】:

    标签: android api kotlin


    【解决方案1】:

    我发现错误是我的错误。对 api 的搜索调用返回一种不同类型的 JSON 模型,因此当解析完成时,我的模型与另一个不匹配。

    【讨论】:

      猜你喜欢
      • 2011-02-16
      • 2010-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-08
      • 2018-01-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多