Restlet:获取失败的get()获取响应正文

时间:2012-10-11 21:28:25

标签: restlet

我正在尝试调试使用Unauthorized(401)响应的特定连接。在Restlet中,这会导致Respresentation.get()抛出错误。

我想要做的是获取响应正文,因为这个特殊的api会在正文中为您提供更多的错误信息。

有什么建议吗?

谢谢, 路加

1 个答案:

答案 0 :(得分:1)

我不愿意推荐它用于生产,但当然对于调试你可以覆盖ClientResource中的handleInbound来改变抛出错误的条件。然后,Restlet将以通常的方式返回身体。

ClientResource clientResource = new ClientResource("http://your.url") {
  @Override
  public Representation handleInbound(Response response) {
    Representation result = null;

    if (response.getRequest().isSynchronous()) {
      if (response.getStatus().isError() 
        && !Status.CLIENT_ERROR_UNAUTHORIZED.equals(response.getStatus())) {
          doError(response.getStatus());
      } else {
          result = (response == null) ? null : response.getEntity();
      }
    }

    return result;
  }
};
Representation response = clientResource.get();
System.out.println(response.getText());