当前位置: 首页 > 知识库问答 >
问题:

onFailure中的改装getMessage返回null

宰父子安
2023-03-14

我在应用程序中使用这些库:

执行官网。收拾一下。改装2:改装:2.4.0'

执行官网。收拾一下。改装2:变流器gson:2.3.0'

实现'com.squareup.okhttp3: okhttp: 3.10.0'

这是我的RetroFitClientInstance类实现:

public class RetrofitClientInstance {

    private static Retrofit retrofit;
    private static final String BASE_URL = "my basic url";

    public static Retrofit getRetrofitInstance() {
        OkHttpClient okHttpClient = new OkHttpClient().newBuilder()
                .connectTimeout(30, TimeUnit.SECONDS)
                .readTimeout(30, TimeUnit.SECONDS)
                .writeTimeout(30, TimeUnit.SECONDS)
                .build();
        if (retrofit == null) {
            retrofit = new retrofit2.Retrofit.Builder()
                    .baseUrl(BASE_URL)
                    .addConverterFactory(GsonConverterFactory.create())
                    .client(okHttpClient)
                    .build();
        }
        return retrofit;
    }
}

直到今天早上它是没有问题,但从今天早上它是不工作和getMessage在onFailure返回null和t.toString()返回java.net.SocketTimeoutExcure。(邮递员还是可以的)。

@Override
public void onFailure(@NonNull Call<List<Ad>> call, @NonNull Throwable t) {

    call.clone().enqueue(this);
    Log.e("error in SplashScreen", "!!" + t.getMessage());
}

有什么问题吗?

共有1个答案

冯澄邈
2023-03-14

来自javadoc的更新

onFailure(调用

当在与服务器通话时发生网络异常,或者在创建请求或处理响应时发生意外异常时调用。

如果您的特定请求在POSTMAN上没有问题,那么就不可能进行onFailure()回调,除非:

  1. android客户端未连接到互联网

除此之外,我只在我的onFailure()回调中执行以下操作,它就像一个符咒:

Log.e(TAG, t.getLocalizedMessage());
Log.e(TAG, t.getMessage());
t.printStackTrace();

 类似资料:
  • 我正在建立一个新的android项目并使用改版,我的改版功能在模拟器(NOX)和邮递员中正常工作,但是当我尝试在移动设备中构建我的应用程序时,改版总是陷入失败,有人能给我解决方案吗?我的API发布在公共主机上, 这就是我所说的改装 我的回应 这是我的邮差回复

  • 我正在使用调用web服务,而reverfit会引发一个失败,来自“throwable”的消息会给我 我假设这是因为.NET web服务抛出了一个错误而没有返回JSON。但是为了证明这一点,我需要能够看到中的原始响应。有没有什么我能做到的? 这是我使用的代码

  • 我在测试类的顶部有以下内容: 通过调试,我可以确认messageSource属性正在被模拟,并且不为null。测试用例最终达到这一点: 我确认我的消息属性文件中包含带有消息字符串的代码“DATA. IS. EMPTY”。我知道消息属性文件配置正确,因为我看到应用程序运行时消息出现在应用程序中。但是,在JUnit测试用例中,上面的getMessage返回为null。查看MessageSource的S

  • 我正在尝试在注册用户后从改装API获得响应。 我从函数 注册URL:https://apitest10101.000webhostapp.com/alaa-apii/public/createuser(方法桩) API返回单个对象JSON,如 注册Activity.java 如果我删除中的if语句,我在日志中得到了这个错误 结果模型。Java语言 改装客户端。Java语言 API接口 建造Grad

  • 我正试图让在我的回调中执行。出于某种原因,onFailure会不断被调用,即使服务器返回200个代码,我也会获取全部数据。 我不确定必须做什么才能正确执行,以便解析JSON并将对象添加到列表视图中。 相关片段:- 请求接口:- 公共接口请求接口{ 服务器响应类: php代码:- functions.php: 数据库操作: 这是我在服务器上的回复: 这是堆栈跟踪和异常: [Ljava.lang.St

  • 我一直在研究猫鼬文档,但我找不到一种方法来实现我想要做的事情。考虑一个MangGDB用户集合。还可以考虑一个包含DB集合中所有字段的蒙古人用户模式。 现在,我想登录到控制台,所有用户,但属性已更改。有点像: 用户。图例(): 给定的异步类型。find()函数我不确定这是否可以实现。我来自C#和PHP背景,只处理关系数据库,这可以通过在用户类中使用只返回所需值的函数轻松实现。 能做到吗?!