gpt4 book ai didi

javascript - 如何将 HTTPS 获取响应传输到对象中

转载 作者:行者123 更新时间:2023-11-28 03:05:46 28 4
gpt4 key购买 nike

我转换了我的代码,这样我就可以使用一些 HTTPS GET 请求,而不需要额外的 node_modules,问题是当我尝试通过管道传输 /releases/ 时,它基本上是一个原始 JSON文件,我的代码需要它回来,并且出现类似 SyntaxError: Unexpected end of JSON input 的问题,因为由于某种原因,当我 console.log() 所谓的 JSON 数组时,结束未完成与 ] 或 }。因此,我尝试将响应通过管道传输到数组中,但现在出现错误:dest.on isn't a function,

代码:

    https.get({hostname: `api.github.com`, path: `/repos/${username}/${reponame}/releases`, headers: {'User-Agent': 'a user agent'}}, async (response) => {
var file = new Array()
response.pipe(file)
response.on('end', async function() { //issue occurs at response.pipe ???
var releases = JSON.parse(fs.readFileSync('./releases.json', 'utf8'))
console.log(releases)

我从 Github 访问的 JSON 文件如下所示:https://api.github.com/repos/davidmerfield/randomColor/releases (随机存储库)

但是,我的文件 (releases.json) 看起来像 this

编辑:我做了广泛的测试。我使用了 pkg 输出的相同 JSON 文件,用 fs 等读取它,一切看起来都很好。所以问题很可能出在 https/response

最佳答案

我发现了如何将 HTTP 请求通过管道传输到对象中,而不是通过管道将其传输到文件中。感谢这个post 。我这样做了并将字符串转换为 JSON 数组。

https.get({hostname: `api.github.com`, path: `/repos/${username}/${reponame}/releases`, headers: {'User-Agent': 'agent'}}, async response => {
var str = ''
response.on('data', (data) => {
str += data
})
response.on('end', async function() {
var releases = JSON.parse(str)
//and so on...

关于javascript - 如何将 HTTPS 获取响应传输到对象中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60623291/

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