Java 类org.springframework.http.client.AbstractClientHttpResponse 实例源码

项目:pinpoint    文件:ListenableFutureInterceptor.java   
@Override
protected void doInAfterTrace(SpanEventRecorder recorder, Object target, Object[] args, Object result, Throwable throwable) {
    recorder.recordServiceType(RestTemplateConstants.SERVICE_TYPE);
    recorder.recordException(throwable);
    recorder.recordApi(methodDescriptor);

    if (args.length == 1 && args[0] instanceof AbstractClientHttpResponse) {
        AbstractClientHttpResponse response = (AbstractClientHttpResponse) args[0];
        try {
            HttpStatus statusCode = response.getStatusCode();
            if (statusCode != null) {
                recorder.recordAttribute(AnnotationKey.HTTP_STATUS_CODE, statusCode.value());
            }
        } catch (IOException ioException) {
            logger.warn("Failed to after process. {}", ioException.getMessage(), ioException);
        }
    }
}