3
// Some setup steps
ResteasyProviderFactory factory = new ResteasyProviderFactory();
factory.registerProvider(com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider.class);

Client client = ClientBuilder.newClient(new ClientConfiguration(factory));

WebTarget target = client.target(webappURL.toURI() + "api/v1");
resteasyWebTarget = (ResteasyWebTarget) target;


// the real request
MyApiController myApiController = resteasyWebTarget.proxy(MyApiController.class);
ClientResponse response = (ClientResponse) myApiController.doSomeStuff();

上記のコードはうまく機能しますが、実際の http 要求と実際の http 応答に関して何が起こっているのかを本当に知りたいです。

myApiController.doSomeStuff();

実行されます。

「生の」リクエストをキャッチしてログに記録し、「生の」http レスポンスをキャッチしてログに記録する最善の方法は何だろうと思っています。resteasy-client 3.0.2.Final または類似のソリューションにのみ興味があります...

ありがとう!

4

1 に答える 1

2

すべてがうまくいった場合 (レスポンス コード 200) を取得する方法はわかりませんが、サーバーがそれ以外を返した場合は、レスポンス / ステータス コード / エンティティ (メッセージ本文) などにアクセスできる ClientErrorException のサブタイプがスローされます。

try {
    myApiController.doSomeStuff();
} catch (BadRequestException ce) {
    // Handle
} catch (ClientErrorException e) {
     MyErrorObject obj = ce.getResponse().readEntity(MyErrorObject.class);

     // Handle
}
于 2015-06-23T13:45:31.140 に答える