【问题标题】:How to handle network error responses with retrofit2 hilt in android when network goes offline?网络离线时如何在android中使用retrofit2 hilt处理网络错误响应?
【发布时间】:2021-12-25 14:03:43
【问题描述】:

我正在使用带有 MVVM 架构的 jetpack compose 构建一个简单的 android 应用程序。为此,我使用 Retrofit2 进行网络请求,使用 Hilt 进行依赖注入。 该应用程序在互联网可用时可以正常工作,但是当我关闭互联网时,它会导致应用程序崩溃。那么当应用程序处于离线模式时如何处理网络错误?

这是向 API 请求数据的代码:

    @Singleton
    @Provides
    fun provideRecipeService() : RecipeService {

        return Retrofit.Builder()
            .baseUrl("https://food2fork.ca/api/recipe/")
            .addConverterFactory(GsonConverterFactory.create())
            .build()
            .create(RecipeService::class.java)
    }

【问题讨论】:

    标签: android error-handling retrofit2 dagger-hilt


    【解决方案1】:

    它与您的依赖注入无关,我认为您的代码中存在未捕获的异常,因此当您的网络调用失败(抛出异常)时,您没有处理异常,请转到网络调用并覆盖使用 try-catch 进行整个网络调用并对其进行测试,如果没问题,将异常映射到错误模型并在 ViewModel 中按照您希望处理错误的方式处理它希望它有所帮助??

    【讨论】:

      【解决方案2】:

      我们需要实际解决您所看到的异常以获得确切的解决方案,但通常某些网络状态可能会引发不同的异常。将网络调用放在 try catch 块中会更安全。

      正如 keivan shamlu 所说,它与 Compose 无关。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-12-28
        • 1970-01-01
        • 1970-01-01
        • 2018-07-17
        • 1970-01-01
        • 1970-01-01
        • 2014-10-02
        • 2019-05-14
        相关资源
        最近更新 更多