【问题标题】:Incorrect header check error不正确的标头检查错误
【发布时间】:2013-03-06 16:17:28
【问题描述】:

当我尝试从下面运行代码时:

var express = require('express');
var app = express();
var port = process.env.PORT || 5000;

var request = require('request');
var zlib = require('zlib');



app.listen(port, function() {
    console.log("Listening on " + port);
    makeRequest();
});



function makeRequest(){

    var url = 'https://api.stackexchange.com/2.1/search?pagesize=5&order=desc&sort=activity&intitle=ios development&site=stackoverflow';
    var headers = {'Accept-Encoding': 'gzip'};

    var response = request(url, headers);

    gunzipJSON(response);
}

function gunzipJSON(response){

    var gunzip = zlib.createGunzip();
    var json = "";

    gunzip.on('data', function(data){
        json += data.toString();
    });

    gunzip.on('end', function(){
        parseJSON(json);
    });

    response.pipe(gunzip);
}

function parseJSON(json){

    var json = JSON.parse(json);

    if(json.items.length){

        for(var i in json.items){

            console.log(json.items[i].title + '\n' + json.items[i].link);

        }

    }
}

我收到错误提示

错误:标头检查不正确 在 Zlib._binding.onerror (zlib.js:286:17)

我在代码中传递了我自己的压缩 url。

任何帮助都会非常有用。

谢谢

【问题讨论】:

  • 欢迎来到 Stack Overflow!永远记住在问题本身中包含代码,而不仅仅是链接到它:)。
  • 你的 process.versions 输出什么
  • { http_parser: '1.0', node: '0.8.19', v8: '3.11.10.25', ares: '1.7.5-DEV', uv: '0.8', zlib: ' 1.2.3',openssl:'1.0.0f' }
  • 这个问题解决了吗?我在尝试解压缩响应正文时遇到了类似的问题。
  • @mikeym,我认为现在是:)

标签: node.js http request gzip zlib


【解决方案1】:

老问题(和request library is now deprecated),但迟到总比没有好:

有趣的是,有问题的代码确实适用于 Node.js 版本 15.13.0,但不适用于 14.16.0(保持 request 的版本相同,即最新的 2.88.2)。

但是,仅使用以下简单代码在 14.16.0 (live demo) 上有效,但在 15.13.0 上无效!:

request(url, function (error, response, body) {
  console.log(JSON.parse(body)); 
});

这意味着由于某种原因,在 14.16.0 上,响应正文会自动解压缩(因此上面的 sn-p 有效),而在 15.13.0 上,响应正文会保持压缩状态,因此需要主动解压缩。

【讨论】:

    猜你喜欢
    • 2013-03-19
    • 2018-12-13
    • 2021-08-31
    • 2015-09-21
    • 2015-05-29
    • 2015-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多