`

HTTP 自定义header有时接收不到,无内容分析

阅读更多

 

出现此问题需满足的条件

  • 您使用了nginx作为反向代理
  • 您自定义header的key中使用了“_”,而不是“-”

原因

//在ngx_http_parse_header_line()函数中
if(ch == ‘_’) {
    if (allow_underscores)
    Unknown macro: {
        hash = ngx_hash(hash, ch);
        r->lowcase_header[i++] = ch;
        i &= (NGX_HTTP_LC_HEADER_LEN -- 1);\
    } else
    Unknown macro: {
        r->invalid_header = 1;
    }

以上代码说明nginx对header name的字符做了限制,默认underscores_in_headers为off,表示如果header name中包含下划线,则忽略掉。

解决办法

  • 您可以将您程序中的“_”都改为“-”
  • 您也可以在nginx配置中设置underscores_in_headers on;

 

0
0
分享到:
评论

相关推荐

    php获取不到自定义header参数原因详解

    特别是,当涉及到自定义Header时,PHP会将所有的HTTP头转换为环境变量存储在`$_SERVER`超全局数组中。对于自定义的Header,其名称前通常会加上`HTTP_`前缀,且所有字符都会转换为大写,同时,如果原始Header名称中...

    java后台获取小程序用户信息和生成自定义token,并使用filter过滤header的token源码

    本主题将详细讲解如何实现“java后台获取小程序用户信息”、“生成自定义token”以及“使用filter过滤header的token”的核心技术点。 首先,我们要理解小程序与后台交互的基本流程。小程序通常会通过调用微信提供的...

    php通过header发送自定义数据方法

    tocurl函数用于发送带有自定义header的HTTP请求,而get_all_headers函数用于从$_SERVER全局变量中提取所有接收到的header信息,这样我们就可以获取之前通过header发送的自定义数据。 tocurl函数定义如下: - url...

    ajax添加header整理

    - `request`: 在这个例子中,我们通过`setRequestHeader`方法为请求添加了一个名为`Test`的自定义Header,并设置其值为`Chenxizhang`。 - `type`: 设置请求类型为`GET`。 - `url`: 指定请求的目标URL。 - `success`:...

    导出到Excel,并且自定义文件名

    在服务器端,接收到这个文件名后,将其与扩展名".xlsx"组合,用于创建Excel文件。 4. **导出到Excel并下载**: 使用选择的库(如EPPlus),创建一个新的Excel工作簿,然后将GridView数据写入工作表。完成后,设置...

    http接口调用(header)

    HttpClientUtil.java文件很可能是用于封装Apache HttpClient库的一个工具类,这个库提供了强大的HTTP客户端功能,支持GET和POST请求,以及自定义Header。通过HttpClient,我们可以创建HTTP连接,设置Header,发送...

    vue在响应头response中获取自定义headers操作

    这样,前端就能在接收到响应后访问到名为`Cookie`的自定义header。在Vue中,我们可以这样获取它: ```javascript this.$http.post("/xx/xxx", { tel: '12345678901', code: '123456' }).then(res => { if (res....

    header-tester:测试是否将自定义标头从客户端传递到服务器

    标题"header-tester:测试是否将自定义标头从客户端传递到服务器"指向一个特定的测试工具或程序,其目的是验证用户在HTTP请求中添加的自定义头部(headers)是否能够正确无误地传递给服务器。这个工具对于开发者调试...

    微信小程序获取用户信息和自定义token两种方法

    在微信小程序开发中,获取用户信息和自定义token是常见的操作,这涉及到用户授权、安全性以及前后端交互等核心知识点。下面将详细讲解这两种方法及其应用场景。 首先,微信小程序提供了获取用户基本信息的功能,...

    BMCustomTableView, iOS应用程序的自定义表视图.zip

    3. **自定义Header和Footer**: 除了Cell,BMCustomTableView还允许开发者自定义Section Header和Footer,使得在表视图中展示分组信息或额外内容更加灵活。 4. **动画效果**: 该库提供了丰富的动画效果,如滑动、...

    在Linux系统下使用curl自定义HTTP头的方法.docx

    通过上述内容的学习,我们可以了解到curl是一个非常灵活且功能丰富的命令行工具,特别是在处理HTTP请求方面。自定义HTTP头部的能力为用户提供了一种强大的手段,可用于解决各种网络通信问题。掌握这些技巧不仅能提高...

    自定义测试工具

    在IT行业中,自定义测试工具是开发者为了满足特定项目需求而创建的专用工具,它们能够提高测试效率,确保代码质量,并针对性地解决项目中的问题。本案例中的“自定义测试工具”包含了对JPA(Java Persistence API)...

    基于.NET的 SOAP Header and SOAP Extensions 扩展Webservice服务程序例子

    自定义扩展可以在消息发送前、发送后、接收前或接收后进行操作,提供了极大的灵活性。 下面是一个基于.NET实现SOAP Header和SOAP Extensions的Web服务示例: 首先,我们定义一个自定义的SOAP Header类,比如`...

    Android-自定义ListeView下拉刷新-可直接使用

    SwipeRefreshLayout是Android提供的官方下拉刷新库,但有时我们需要更自定义的行为,因此需要自定义实现。 1. **自定义SwipeRefreshLayout**: - 如果系统提供的SwipeRefreshLayout不能满足需求,可以重写其...

    电信设备-包含发送方自定义标题的短信发送方法.zip

    2. SMS协议支持:SMPP(Short Message Peer-to-Peer)协议是短信服务中常用的一种标准协议,它支持在短信内容前添加特殊字段,如UDH(User Data Header),用于携带自定义信息,如标题。 3. 设备兼容性:确保自定义...

    自定义Tabbar

    1. **创建宏定义**:在项目中创建一个新的Header文件,定义一个宏,如`CREATE_TAB_BAR`,接收必要的参数,如标签文字、图标等。 ```objective-c #define CREATE_TAB_BAR(title, image, selectedImage) [QSTabBarItem...

    Nginx代理时header头中带”_”信息丢失问题的解决

    开发网关项目时,在请求时往请求头header中放入了签名sign_key信息,在接收请求时再从header中拿出,在本地调试时是可以的,但上线之后通过Nginx代理之后发现拿不到。 location / { proxy_set_header X-Real-IP $...

    http头获取并处理,libcurl 使用及例程-大隐隐于床-ChinaUnix博客1

    回调函数可以设置为`CURLOPT_WRITEFUNCTION`,接收的数据类型为`void *ptr`,包含了接收到的字节数据,`size_t size`和`size_t nmemb`分别表示每个元素的大小和元素的数量,`void *userp`则是自定义的用户数据。...

    自定义SOAP消息详细解释

    自定义SOAP消息主要涉及到在使用ASP.NET创建的XML Web服务中,如何控制SOAP消息的格式。SOAP(简单对象访问协议)是一种轻量级的、基于XML的协议,用于在Web服务中交换结构化和类型化的信息。SOAP消息通常包含一个...

    python requests.get带header

    本文将深入探讨如何使用`requests.get()`函数发送带有自定义header的HTTP GET请求,以及HTTP请求头(headers)的主要内容及其作用。 首先,当我们发送HTTP请求时,header是一个关键组成部分,它包含了关于请求的元...

Global site tag (gtag.js) - Google Analytics