@ControllerAdvice
public class ApiAfterHandler implements ResponseBodyAdvice
@Override
public Object beforeBodyWrite(Object arg0, MethodParameter arg1, MediaType arg2, Class extends HttpMessageConverter>> arg3, ServerHttpRequest arg4, ServerHttpResponse arg5) {
JSONObject apiResultObject = new JSONObject();
InputStream st = null;
try {
st = arg4.getBody();
} catch (IOException e) {
e.printStackTrace();
}
StringBuffer param = new StringBuffer();
String line = null;
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(st));
while ((line = reader.readLine()) != null)
param.append(line);
} catch (Exception e) {
}
HttpHeaders head = arg4.getHeaders();
apiResultObject.put("userAgent", head.get(head.USER_AGENT));
apiResultObject.put("result", JSON.toJSONString(arg0));
apiResultObject.put("url", arg4.getURI());
apiResultObject.put("param", param.toString());
apiResultObject.put("method", arg4.getMethod());
SysLog.info(JSON.toJSONString(apiResultObject));
return arg0;
}
@Override
public boolean supports(MethodParameter methodParameter, Class<? extends HttpMessageConverter<?>> arg1) {
// TODO Auto-generated method stub
return true;
}