获取不到自定义的 Request 的header属性
作者:互联网
原文链接:https://www.cnblogs.com/whzbz894/p/11283883.html
java获取headers的代码如下:
// 获取http-header里面对应的签名信息
Enumeration<?> headerNames = request.getHeaderNames();
logger.info("request headerNames : {}", JSONParser.toJSONString(request.getHeaderNames()));
logger.info("request sys_sign header : {}", JSONParser.toJSONString(request.getHeader("sys_sign")));
// 签名的key
String key = null;
// 签名内容
String signValue = null;
while (headerNames.hasMoreElements()) {
// 获得请求头部的Key
key = (String) headerNames.nextElement();
if ("sys_sign".equals(key)) {
signValue = request.getHeader(key);
break;
}
}
代码没问题,却就是获取不到header属性: sys_sign ;
查了半天,发现跟nginx的配置有关系,nginx会默认去除属性名包含下划线“_”的属性。
解决方法,修改nginx的配置文件 nginx.conf ,在配置http的部分修改如下:
underscores_in_headers on; ##(默认值是off)
建议不要使用包含下划线属性名 . . .
标签:自定义,nginx,request,Request,sys,header,key,headerNames 来源: https://blog.csdn.net/Dongguabai/article/details/100036272