Dubbo获取Request、Cookie
RpcContext
关于 RpcContext 的理解,详情见:https://blog.csdn.net/sinat_32502451/article/details/134192733
RpcContext是 Dubbo中的一个类,可以用来获取 Context(上下文),接着就能获取到 Request、Cookie。
注意:RpcContext.getContext() 方法,在新版本中,已被替换为 RpcContext.getServiceContext()。
Dubbo获取 Request:
HttpServletRequest request= (HttpServletRequest) RpcContext.getContext().getRequest();
Dubbo获取 Cookie数组:
HttpServletRequest request= (HttpServletRequest) RpcContext.getContext().getRequest();
Cookie[] cookies = request.getCookies();
Dubbo获取 Cookie中的值:
public class RpcContextUtil {
/**
* 获取cookie中的信息
* @param key
* @return
*/
public static String getFromCookie(String key) {
String value = "";
if (StringUtils.isEmpty(key)) {
return value;
}
//获取request
HttpServletRequest request= (HttpServletRequest) RpcContext.getContext().getRequest();
//从request中获取Cookie数组
Cookie[] cookies = request.getCookies();
if (cookies == null) {
return value;
}
//从cookie数组中,获取key对应的value
for (Cookie cookie: cookies) {
if (key.equals(cookie.getName())) {
value = cookie.getValue();
}
}
//解码,如果不解码,cookie中的空格有时会乱码显示成%20
try {
value = StringUtils.trim(URLDecoder.decode(value, "utf-8"));
} catch (UnsupportedEncodingException e) {
log.error("cookie info could not decode.key: {}, value: {}",key, value);
}
return value;
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2018-03-29 Spring知识点提炼