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

改装2.0 onFailure-原始响应

欧阳嘉年
2023-03-14

我正在使用reverfit调用web服务,而reverfit会引发一个失败,来自“throwable”的消息会给我

我假设这是因为.NET web服务抛出了一个错误而没有返回JSON。但是为了证明这一点,我需要能够看到onfailure中的原始响应。有没有什么我能做到的?

这是我使用的代码

public void userLoginRequestEvent(final AuthenticateUserEvent event) {

Call call = sApi.login(event.getUsername(), event.getPassword(), OS_TYPE, DeviceInfoUtils.getDeviceName());
call.enqueue(new Callback<LoggedInUser>() {
  @Override
  public void onResponse(Response<LoggedInUser> response, Retrofit retrofit) {
    // response.isSuccess() is true if the response code is 2xx

    if (response.isSuccess()) {
      LoggedInUser user = response.body();

      AppBus.getInstance()
              .post(new UserIsAuthenticatedEvent(user, event.getUsername(),
                      event.getPassword()));
    } else {
      int statusCode = response.code();

      // handle request errors yourself
    }
  }

  @Override
  public void onFailure(Throwable t) {
    // handle execution failures like no internet connectivity
    Log.d("ERROR", t.getMessage());
  }


});

共有1个答案

宋腾
2023-03-14

您可以使用OKHTTP-Logging-Interceptor中存在的日志拦截器。

一个很好的例子可以在Logging with reverfit2中找到。

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

  • 改装版本:2.1.0 OkHttp版本:3.4.1 在我的Retromet实现的方法中,我有以下逻辑: 这里的是我自己的类型(与OkHttp的无关),它包装了一个泛型,其中是一个接口,它公开了一个方法,用于确认反序列化的响应满足给定的约束。 如果我收到一个表面上成功的响应(HTTP代码2XX、非空响应主体等)。),但其反序列化的主体没有通过此验证步骤(即返回false),我想呈现一个对话框,其消息

  • 我正试图通过改型2获得原始响应。0.2. 到目前为止,我试图使用以下代码行打印响应,但它打印的是地址,而不是确切的响应正文。 日志i(“原始消息”,response.body()。toString());

  • 如何获得原始json输出。如果可能的话,我不想实现用户数据类和解析器。有什么办法吗? 标记重复的帖子(获得原始HTTP响应与改造)不是为Kotlin和我需要Kotlin版本。

  • 我正在使用带有Robospice(1.4.14)的Revovit(1.6.1)从一些服务中获取数据(响应应该在JSON中)。 在某些情况下,我可能会收到一个HTML错误页面,而不是一个JSON响应。服务器返回一个200状态代码,我不能改变它。在这种情况下,RoboSpice将调用方法。 在那里,我可以获得原始的expetion,但正文是。我是这样得到的: 在研究了reverfit的源代码之后,我发