我目前正在使用 Node 从 API(Discogs API)获取数据,请求时出现此错误:
{ [Error: Parse Error] bytesParsed: 0, code: 'HPE_INVALID_CONSTANT' }
使用此链接:http ://api.discogs.com/releases/249504 (但我对其他所有请求都有相同的错误content-length != actual content length
)
这段代码:
var http = require('http');
var options = {
hostname: 'api.discogs.com',
port: 80,
path: '/releases/249504',
method: 'GET'
};
var req = http.request(options, function(res) {
console.log("statusCode: ", res.statusCode);
console.log("headers: ", res.headers);
res.on('data', function(d) {
console.log(d);
});
});
req.end();
req.on('error', function(e) {
console.error(e);
});
我发现 Content-length 值总是小于实际响应字节长度。
Content-length : 2142
Actual Byte Length : 7,734 Bytes (according to https://mothereff.in/byte-counter)
我读过 Node 的 Parser 非常严格,这就是它无法解析响应的原因。
最后,我问你是否有一种方法可以在 Node 解析响应之前忽略/修改/删除 Header,这样解析器就可以通过忽略 Content-Length 来完成他的工作?