使用响应标头作为返回对象的一部分,使用Retrofit

时间:2018-02-16 12:34:23

标签: android gson retrofit rx-java rx-java2

我正在使用Retrofit + RxJava + GSON来使用rest api进行搜索。构建API的方式是,它返回一个对象列表,总结果作为响应中的标题(total-results):

@GET("search/events?eager=[competition,tv]")
    fun searchEvents(@Query("q") q: String, @Query("category") category: String, @Query("order") order: String): Single<List<Event>>

我想返回Single,其中SearchResult是:

SearchResult {
 var total: Int
var events: List<Event>
}

这可能吗?

1 个答案:

答案 0 :(得分:1)

而不是Single<List<Event>>修改您的界面以返回Single<Response<List<Event>>>

Response类包含从API调用返回的正文和标题。

您可以使用response.isSuccessful()检查是否成功,然后您可以使用response.body()response.headers()标题来访问正文。

要从那里获得所需的输出,您可以使用RxJava中的map()