RestTemplate.getForObject
コールのHTTP GETリクエストの時間を、レスポンスの解析に必要な時間なしに測定したいとします。リモートHTTPコールに必要な時間です。私はすでにClientHttpRequestInterceptor
を設定しようとしたが、私は、これは時間が間違っているように見えるようにそれを行うための正しい方法であると思ういけない:Measure Spring RestTemplate HTTPリクエスト時間
public class PerfRequestSyncInterceptor implements ClientHttpRequestInterceptor {
private Logger log = Logger.getLogger(this.getClass());
@Override
public ClientHttpResponse intercept(HttpRequest request, byte[] body,
ClientHttpRequestExecution execution) throws IOException {
long start = System.nanoTime();
ClientHttpResponse resp = execution.execute(request, body);
log.debug("remote request time: "
+ ((System.nanoTime() - start) * Math.pow(10, -9)));
return resp;
}
}
はコール:
RestTemplate rest = new RestTemplate();
List<ClientHttpRequestInterceptor> interceptors = new ArrayList<ClientHttpRequestInterceptor>();
interceptors.add(new PerfRequestSyncInterceptor());
rest.setInterceptors(interceptors);
Response inob = rest.getForObject(xmlURL, Response.class);
どのように私は時間を測定することができますRestTemplate HTTPリクエスト?
私は同じ問題を抱えていました。レスポンスが利用可能になるまで、実行をブロックするには、レスポンスオブジェクトに対してメソッド呼び出しを行う必要があります。 – jaydfwtx