我是Robospice的新手,在处理错误请求时遇到问题。有没有一种方法可以从onRequestFailure方法中的错误请求访问Response主体?如果没有,你们是怎么做到的?
private class RequestListener implements RequestListener<Object> {
@Override
public void onRequestFailure(SpiceException e) {
}
@Override
public void onRequestSuccess(Object response) {
}
}
有建议,我应该在Spice Request中进行错误检查。有什么建议吗?
@Override
public SubscriptionsContainer loadDataFromNetwork() {
ResponseEntity<SubscriptionsContainer> response = null;
try {
response = getRestTemplate().exchange(/*your request data*/);
} catch (HttpClientErrorException e) {
String responsebody = e.getResponseBodyAsString();
}
}
最佳答案
如果从loadDataFromNetwork()
抛出任何异常,它将被包装为SpiceException
并传递给onRequestFailure()
作为其参数。
因此,您应该检查ResponseEntity<T>
以了解期望的条件,并在未满足条件的情况下引发异常。
另一方面,如果您的RestTemplate.exchange
调用引发了异常,则您也可以处理该异常(如您的示例所示)或将其引发(这样它将在主线程上与onRequestFailure()
一起报告)。