gpt4 book ai didi

javascript - 当响应长度超过 16101 时,Node Js HTTP 响应崩溃

转载 作者:可可西里 更新时间:2023-11-01 16:33:09 27 4
gpt4 key购买 nike

我正在使用 Node JS HTTP 请求。当我的响应长度超过 16101 时,它会 chop 我的响应。我收到了这样有限的回复:

{"id_user":"133696"},{"id_u

这不是分块响应,它只出现一次。我想接收整个响应而不是 chop 的响应。

我的 Node 版本是 v0.10.36。

这是我的代码:

var https   = require('https');
var querystring = require('querystring');

postData.format = 'json';
postData.apikey = 'abcd';

jsonObject = querystring.stringify(postData);

var postheaders = {
'Content-Type' : 'application/x-www-form-urlencoded',
'Content-Length' : Buffer.byteLength(jsonObject, 'utf8')
};

if(callMethod == undefined){
callMethod = 'POST';
}

var optionspost = {
host : this.host,
port : this.port,
path : this.path,
method : callMethod,
headers : postheaders
};

var reqPost = https.request(optionspost, function(res) {

res.setEncoding('utf-8');
res.on('data', function(responseData) {

//---->>> responseData containes truncated response

if(callFunction != undefined && callFunction != null && callFunction != ''){

callFunction(responseData, relatedData);//****** calling success function ****
}
});
res.on('end', function() {


});
});

reqPost.write(jsonObject);
reqPost.end();
reqPost.on('error', function(e) {
console.error(e);
});

最佳答案

您的代码只需要一次 data 事件,但 Node 可以多次触发它。事实上,它可以随心所欲地触发它。:) 每次发出 data 事件时,都会向您提供另一部分数据。您知道当 end 事件被触发时,没有更多的数据可以使用 - 这是您应该处理数据和/或调用回调的地方。

由于响应基本上是一个可读流,请查看 data event for Readable Stream .

关于javascript - 当响应长度超过 16101 时,Node Js HTTP 响应崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30709575/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com