改造网络连接拦截器

时间:2019-12-27 23:57:35

标签: android kotlin retrofit

我创建了一个NetworkInterceptor,但我发现当没有Internet连接时它并没有调用失败。

class NetworkInterceptor() : Interceptor {

    @Throws(IOException::class)
    override fun intercept(chain: Interceptor.Chain): Response {
        if (!isNetworkConnected()) {
            throw NoConnectivityException()
        }
        val builder: Request.Builder = chain.request().newBuilder()
        return chain.proceed(builder.build())
    }
}

isNetworkConnected()函数起作用。我已经对其进行了单元测试。

我将其添加到HttpClient

okHttpClient: OkHttpClient = OkHttpClient.Builder()
    .addInterceptor(NetworkInterceptor())
    .build()

然后我这样拨打电话:

fun getUser(): User? {
    val result = BackendApi.getService().getUser(userRequest).execute()
    if(!result.isSuccessful) {
        return null
    }
    ...
}

我认为我在执行execute时需要做一些事情,但是迷路了。请帮忙。

0 个答案:

没有答案