0

我正在尝试调试以未经授权(401)响应的特定连接。在 Restlet 中,这会导致 Respresentation.get() 抛出错误。

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

有什么建议么?

谢谢,卢克

4

1 回答 1

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());
于 2012-10-22T12:20:33.530 回答