【发布时间】:2023-04-03 07:10:01
【问题描述】:
对于 nodeJS v0.10.28,http 请求中标头内容的大小/长度是否有限制?
让我解释一下:
我需要使用第三方提供商提供的休息服务。返回给我的数据在请求的标头中,主体大部分是空的(120 个左右的字符)。标头中的数据量从几个字符到几个 100kb 不等。
var https = require('https');
var httpHeaders = {
Authorization: 'Basic ' + new Buffer(user + ':' + psw).toString('base64'),
accept: '*/*',
'Content-Type': 'text/plain; charset=utf-8'
};
var options = {
host: "www.website.com",
port: 8080,
path: "/" ,
method: 'GET',
headers: httpHeaders,
rejectUnauthorized: false,
requestCert: true,
agent: false
};
https.request(options, function(res) {
res.setEncoding('utf8');
if (res.statusCode == 200) {
var json = res.headers["someHeaderInfo"];
callback(null,{ "result" : JSON.parse(json) });
} else {
callback({ "error" : res.statusCode });
}
}).on('data', function (chunk) {
console.log('BODY: ' + chunk);
}).on('error', function(e, res) {
console.log(" Got error: " + e.message);
callback({ "error" : e.message });
}).end();
上面的代码适用于较小的标头,但在 on('error',较大的标头上显示“Parse Error”消息时失败。
删除 on error 子句会引发此异常:
Error: Parse Error
at CleartextStream.socketOnData (http.js:1583:20)
at CleartextStream.read [as _read] (tls.js:511:12)
at CleartextStream.Readable.read (_stream_readable.js:320:10)
at EncryptedStream.write [as _write] (tls.js:366:25)
at doWrite (_stream_writable.js:226:10)
at writeOrBuffer (_stream_writable.js:216:5)
at EncryptedStream.Writable.write (_stream_writable.js:183:11)
at write (_stream_readable.js:582:24)
at flow (_stream_readable.js:591:7)
at Socket.pipeOnReadable (_stream_readable.js:623:5)
标题大小有限制,我可以更改吗?我有什么解决方案?
谢谢
【问题讨论】:
标签: node.js http-headers