【问题标题】:What does this error mean: HPE_INVALID_CONSTANT?此错误是什么意思:HPE_INVALID_CONSTANT?
【发布时间】:2016-01-13 14:55:41
【问题描述】:

前几天我在使用 NodeJS 发出 HTTP 请求时收到了HPE_INVALID_CONSTANT。它们最近神秘地停止了,但我仍然感到困惑和好奇 HPE_INVALID_CONSTANT 到底想告诉我什么。

我的谷歌搜索结果有点偏向 NodeJS,所以我没有选择任何更笼统地描述这意味着什么的东西。它看起来像一个系统级错误,因为它都是大写的。

【问题讨论】:

    标签: http tcp


    【解决方案1】:

    认为这个答案已经晚了,但它可以帮助一些人。

    我也遇到了这个问题,并意识到 NodeJS 不支持 HTTP 0.9,服务器的响应不包含标头。事实上,在 NodeJS 文档中显示了对 1.0 和 1.1 的 http 请求的支持。

    您可以在本期阅读更多here

    【讨论】:

    • 就我而言,我根本没有向 NodeJS 客户端返回任何东西。
    【解决方案2】:

    HPE_INVALID_CONSTANT 表示Http Parse Error,无效常量表示响应格式错误。所以解析器无法解析!

    【讨论】:

      【解决方案3】:

      我遇到这个问题是因为我试图压缩太小的文件。在我的具体情况下,我正在创建一个 83 字节的文件的读取流,然后将其通过管道传输到 gzip 中,然后最终将其传输到响应中

      fs.createReadStream(file_path).pipe(gzip.createGzip()).pipe(res);
      

      在请求者方面,然后我试图解压缩文件

      stream = request({"url": "https://example.com/getFile", "timeout": 200000});
      
      //This is where the error was getting thrown
      stream.pipe(gzip.createGunzip())
      

      似乎尝试压缩然后解压缩大小小于 200 字节的文件会完全破坏这一点,所以这是我遇到的一个问题。我想我的故事的寓意是不要压缩超小的文件!

      【讨论】:

        【解决方案4】:

        在请求 URL 中使用未解码的参数时,我遇到了同样的问题。

        例子:

        1. 请求http://someaddress.com?query=something with whitespaces会导致错误

            Error: Parse Error
            at TLSSocket.socketOnData (_http_client.js:440:20)
            at emitOne (events.js:116:13)
            at TLSSocket.emit (events.js:211:7)
            at addChunk (_stream_readable.js:263:12)
            at readableAddChunk (_stream_readable.js:250:11)
            at TLSSocket.Readable.push (_stream_readable.js:208:10)
            at TLSWrap.onread (net.js:597:20)
          bytesParsed: 0,
          code: 'HPE_INVALID_CONSTANT',
          
        2. http://someaddress.com?query=something%20encoded%20with%20whitespaces 的请求可以正常工作

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-03-04
          • 2012-11-26
          相关资源
          最近更新 更多