如何处理RoboSpice中的非2XX响应代码?

时间:2015-06-08 15:04:56

标签: android retrofit okhttp robospice

如果请求未通过验证,我的API服务器将返回HTTP 400响应代码,并提供详细消息,应将其解析为响应。

例如:

public class RegistrationResponse {
    private String emailError; // Detailed message. Null if no error occured
}

但Robospice(Retrofit + OkHttp)使用消息" retrofit.RetrofitError:400 BAD REQUEST"触发onRequestFailure()。在这种情况下,当然,不解析任何东西。

如果响应代码不是2XX,我应如何解析响应?

1 个答案:

答案 0 :(得分:1)

您应该声明返回HTTP Response对象的Retrofit方法,并检查loadDataFromNetwork()中的原始对象以获取所需的状态。但是,这样,您将跳过解析响应的开箱即用功能,并且必须手动执行此操作。

因此,您还应该找到一种方法来重用Converter中传递给RestAdapter的{​​{1}}。覆盖RetrofitSpiceService#createConverter()方法可能是实现此目的的最简单方法。