【发布时间】:2019-06-18 13:41:04
【问题描述】:
我正在使用改造。使用科特林。我需要知道响应状态码。比如是 200 还是 500。我怎样才能从响应中得到它?
我的 Api 类:
interface Api {
@POST("user/code/check")
fun checkSmsCode(@Body body: CheckCodeBody): Single<Response<Void>> }
这就是我调用 Api 的方式。但请注意,SERVE 不会在响应体中返回代码字段!
api.checkSmsCode(
CheckCodeBody(
code = code
)
)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe({
//HOW TO CHECK STATUS RESPONSE STATUS CODE HERE???
},
{ e ->
when (e) {
is IOException -> view?.showNoNetworkAlert()
else -> view?.invalidCodeError()
}
}
).also {}
据我了解,在 Java 中这是一件容易的事。
你只需使用response.code() 或类似的东西就可以了。但是如何在 Kotlin 中实现呢?
【问题讨论】:
-
But how to achieve it in Kotlin?Retrofit 是一个 Java 库,Kotlin 与 Java 互操作;所以你需要做与 Java 完全相同的事情。 -
好吧,这并不像看起来那么容易。事实证明,您无法从 Kotlin 访问这些内容。我不知道如何实现它。
-
您可以使用
it字词访问它,确切地说是it.code()。 -
@r2rek 它不工作。
-
你如何定义
checkSmsCode?