gpt4 book ai didi

node.js - 如何将node js https请求保存在变量中

转载 作者:太空宇宙 更新时间:2023-11-03 22:49:58 25 4
gpt4 key购买 nike

我正在使用用 node.js 编写的 api(通常仅使用 php 代码)并尝试从外部源获取数据。

具体部分如下:

var https = require("https");
var token = "Secret_Token";
var request = https.get("https://example.com?token=" + token, function(response)
{
var body = "";
response.on('data', function(chunk)
{
dapi.message.send('' + chunk)
});
});

我尝试将数据保存到变量中,而不是直接将数据发送到 API 的 dapi.message.send('' + chunk)

我尝试了我所知道的方法来保存它,但它不起作用。

在我的测试中,GET 请求得到以下结果,因此需要将其保存在数组中:[“Testuser_1”、“Testuser_2”、“Testuser_3”、“Testuser_4”、“Testuser_5”]

我尝试将 dapi.message.send('' + chunk) 部分与 var myarray = chunkvar myarray = ('' + chunk) 和其他可能性,但它不会工作。

最佳答案

由于您正在处理数据流,因此 on('data') 事件可能会被多次触发。因此,您需要捕获每个事件并组装您收到的所有 block :

var finalResponse = ''
response.on('data', function(chunk) {
finalResponse += chunk
});

由于您想要等待所有数据返回,因此您需要等待流 end 事件。此事件表示不会再通过流发送任何数据。数据流结束后,您可以使用保存到 finalResponse 变量中的整个响应的内容来调用 dapi.message 函数。您会知道数据流何时结束,因为就像 data 事件一样,一旦没有更多数据,就会触发 end 事件。

response.on('end', function() {
dapi.message.send(finalResponse)
});
<小时/>

为了方便起见,我将在 end 事件中添加一个指向 Stream 文档的链接 - https://nodejs.org/api/stream.html#stream_event_end

关于node.js - 如何将node js https请求保存在变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51233168/

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