0

Unauthorized (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 に答える