获取不到自定义的request的header属性

Posted whzbz894

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取不到自定义的request的header属性相关的知识,希望对你有一定的参考价值。

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)

 

建议不要使用包含下划线属性名 . . .

 

以上是关于获取不到自定义的request的header属性的主要内容,如果未能解决你的问题,请参考以下文章

python使用requests模块完成get/post/代理/自定义header/自定义cookies

为啥 Access-Control-Request-Headers 中包含非自定义标头?

设置data-*属性自定义数据获取不到的问题

jsp 中获取自定义变量

Vue 自定义header

requests库之自定义request