【发布时间】:2017-05-20 09:33:44
【问题描述】:
我在尝试使用 RxJava2 和 Retrofit2(在 Kotlin 中)检索一些 Api 数据时遇到了一个 android 应用程序的问题。执行调用后,屏幕变黑,应用程序不再响应,没有任何日志消息。
我使用的通话网址如下:
api/apartments?projection={"id":1,"address":1}
这个调用的Service接口是这个:
@GET("api/apartments?projection={\"id\":1,\"address\":1}")
fun getAllApartments(@Header(AUTHORIZATION) auth: String): Single<List<APTLIST>>
这是我执行调用的方式:
override fun getAllApartments(): Single<List<APTLIST>> = retrofit.create(ApartmentsService::class.java).getAllApartments("$BEARER$token")
这就是我调用函数的方式:
getAllApartmentsUseCase.getAllApartments()
.subscribe(
{
apartments.clear()
apartments.addAll(it)
view.showApartments(apartments)
},
{ println(it.message) }
)
此调用适用于 Postman,结果如下:
[
{
"_id": "591ecaca861a528a5b4c3d90",
"id": "ROC 03"
},
{
"_id": "591a0fb2861a528a5b4c3d60"
},
{
"_id": "58be94d484c4b0a468fb93e0",
"id": "CAN 2.3",
"address": "Els Refugis"
}
]
【问题讨论】:
-
只是先尝试消费端点而不返回单个。不确定您的问题与 RX 有关
-
似乎不是,当通过 .execute() 执行带有改造的同步调用时,它也会因黑屏而冻结。也许这就是我使用此 URL 查询的方式?
-
不熟悉android mate。尝试向端点发出一个非常简单的请求
标签: android kotlin retrofit2 rx-java2