小编nar*_*ani的帖子

从retrofit2和rxjava中的错误中获取url

我正在使用带有 rxjava 的改造 2 来发送休息请求。和 Gson 作为 json 解析。

如果 Gson 无法解析 json 字符串,则抛出java.lang.IllegalStateException一些消息。我的问题是我不知道这个错误发生在哪个网址上。

如果错误类型是,HttpException我可以从中获取 url,但在其他类型中java.lang.IllegalStateExceptionTimeoutException只能访问错误消息,而我看不到 url。

我怎样才能在 rxjava 中实现 url 并改造捕获。

那是我的代码:

mainApi.getSomething(offset, limit, distance, latitude, longitude)
            .subscribeOn(Schedulers.newThread())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe({it:Response<Something>
                val entities = it.body()?.entities
                callBack.onResponse(it.raw(), entities)
            }, {//it:throwable
                if (t is HttpException) {
                   Log.d("logUrl", "HttpException : ${t.response().raw().request().url()} : ${t.code()} :${t.message()}")
                } else//something like IllegalStateException or TimeoutException
                     Log.d("logUrl", "Failure : ${t.localizedMessage}")
                })
               })
Run Code Online (Sandbox Code Playgroud)

android kotlin rx-android retrofit2 rx-java2

3
推荐指数
1
解决办法
1129
查看次数

标签 统计

android ×1

kotlin ×1

retrofit2 ×1

rx-android ×1

rx-java2 ×1