1.对于普通的项目
在开发中常常需要在后端获取header或者是cookie,在控制层获取request可以直接写在参数中获取,但在服务层如果是其他微服务框架可以直接使用
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
的形式获取,但是在servicecomb框架中这种方式获取为空,只能使用ContextUtils这个工具类来获取。
2.在servicecomb项目中
Map<String,Object> map = ContextUtils.getInvocationContext().getLocalContext();
VertxServerRequestToHttpServletRequest vertxServerRequest = (VertxServerRequestToHttpServletRequest)map.get(
"servicecomb-rest" +
"-request");
Cookie tokenCookie = vertxServerRequest.getContext().request().getCookie("token");
MultiMap multiMap = vertxServerRequest.getContext().request().headers();