zoukankan      html  css  js  c++  java
  • 获取不到自定义的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)

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

  • 相关阅读:
    请求参数的中文乱码问题
    MySql索引与优化
    Android 兼容包
    Mysql 主从(转)
    解决tomcat一闪而过(转)
    log4j
    支付相关
    通过maven添加quartz
    linux命令学习之:chmod
    Nginx特点及其配置
  • 原文地址:https://www.cnblogs.com/whzbz894/p/11283883.html
Copyright © 2011-2022 走看看