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

改装句柄成功和错误响应

洪昊然
2023-03-14

我正在使用改装连接到REST服务器,我需要处理成功响应和错误响应。我基于此示例构建我的客户机。

例如,在get token方法上,服务器成功响应具有以下结构:

{"status":0, "result":"7f4e879d1f64b10b5719a5b0ab6c7419"}

故障响应是:

{"status":-1, "result":"Password is not valid"}

我的问题是,应用程序将错误响应视为成功。我的代码是:

-rest api方法接口:

public interface Restapi {
    @GET("/?method=get_token")
    void login(@Query("login") String login, @Query("password") String password, RestCallback<LoginResponse> callback);
}

-模型登录响应:

public class LoginResponse {
    //With @SerializedName("status") neither working 
    public int status;
    public String result;
    //Getters and setters
}

-模型错误响应:

public class RestError {
    public int status;
    public String message;
    //Getters and setters
}

-Rest回调:

public abstract class RestCallback<T> implements Callback<T> {
    public abstract void failure(RestError restError);

    @Override
    public void failure(RetrofitError error) {
        RestError restError = (RestError) error.getBodyAs(RestError.class);
        if (restError != null)
            failure(restError);
        else {
            failure(new RestError(-1, error.getMessage()));
        }
    }
}

-客户端类别:

public class RestClient {

    private static Restapi REST_CLIENT;

    static {
        setupRestClient();
    }

    public static Restapi get() {
        return REST_CLIENT;
    }

    private static void setupRestClient() {
        RestAdapter restAdapter = new RestAdapter.Builder()
                .setLogLevel(RestAdapter.LogLevel.FULL)
                .setEndpoint(Constants.getEndpoint())
                .build();

        REST_CLIENT = restAdapter.create(Restapi.class);
    }
}

错误在哪里?

共有1个答案

萧飞
2023-03-14

这不是你的Android代码错误,改造正在完成他们的工作。您收到错误案例成功回调的原因是您的服务器正在返回成功状态代码(200-299)。

在这种情况下,只有在网络连接错误或服务器脱机时,才会调用故障回调。

 类似资料:
  • 我正在使用Retrofit和Gson从REST服务获取数据。它运行完美,但仅当API不返回错误时。通常,API返回对象列表(作为json),但当发生错误时,API返回单个错误对象。我正在尝试获取

  • 在新的改型中,我正在打电话,并在响应和故障上覆盖两种方法。 如果对我的类模型进行了成功的解析响应改装,我可以得到简单的响应,但是如果(!response.issueccessful())我如何获得服务器响应呢? 我看到代码错误。原始反应。错误体。但没有看到来自服务器的响应。这是我的错误从服务器...如何从响应得到它?

  • 这是我的服务器响应; 我的服务器响应在这里,它返回一些参数和一些常量的Json数组格式的值…

  • 我无法从类似200201的响应中获取成功响应状态代码。。我们可以很容易地从类中获得错误代码,比如和。是否有获取状态代码的解决方法?

  • 我有一些控制器方法,比如 roundRobinBean返回某个主机的WebClient。如果我得到连接超时异常或得到500响应,我需要调用另一个主机或从缓存返回数据。mono有一些处理程序来改变内部数据吗?

  • 我试图在onFailure(ReformationError error)中获取错误响应正文,但获取的是null。 我正在使用标题“Accept:text/plain”(接受:text/plain)(接收请求)和“response”(响应),如果我设置日志级别,则可以将正文视为文本。完整。此外,<代码>错误。getResponse()。getStatus()为我提供正确的状态代码。 但是当我执行或