我是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()一起报告)。

08-05 20:04