自定义超时消息进行改造



我需要在Raturofit到达超时时为用户设置自定义消息。我已经搜索了Stackoverflow,但找不到解决方案。我还通过github进行了搜索并找到了这一点(可能是负责我目前看到的消息的行):

ConnectException ce = new ConnectException("Failed to connect to " + route.socketAddress());

这是在类okhttp/src/main/java/okhttp3/internal/connection/RealConnection.java

所以我去了那个课,由于它属于 OkHttp lib,它不会让我编辑此消息。

有人知道我如何使用自己的自定义超时处理程序?

相关build.gradle条目:

compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
compile 'com.squareup.okhttp3:logging-interceptor:3.4.1'

编辑:

下面给出的两种解决方案都可能起作用,但这确实很丑陋,我实际上必须在约70-80个位置更改onFailure方法,这是不理想的。

在翻新网络呼叫的故障块上。

@Override
public void onFailure(Call<Void> call, Throwable t) {
    if (t.toString().contains("SocketTimeoutException")) {
            // set your custom message here
            //view.showToast(R.string.poor_internet_connection);
    } else {
          .....
    }
}

在您的错误回调方法中使用以下代码

@Override
public void error(Throwable exception) {
     String errorMsg
     if (exception instanceof java.net.SocketException || exception instanceof java.net.SocketTimeoutException) {
        errorMsg = "Your custom message here"
    }
}

最新更新