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

Posted on   jiaoqing。  阅读(784)  评论(0编辑  收藏  举报

ava获取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;
    }
}
复制代码

代码没问题,本地可以获取到,nginx获取不到。

查了半天,发现跟nginx的配置有关系,nginx会默认去除属性名包含下划线“_”的属性。

解决方法,修改nginx的配置文件 nginx.conf ,在配置http的部分修改如下:

underscores_in_headers on; ##(默认值是off)

 

 

 

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

编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· .NET Core 中如何实现缓存的预热?
· 三行代码完成国际化适配,妙~啊~
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?

随笔 - 287, 文章 - 0, 评论 - 3, 阅读 - 42万

Copyright © 2025 jiaoqing。
Powered by .NET 9.0 on Kubernetes

点击右上角即可分享
微信分享提示