gpt4 book ai didi

javascript - IBM Web 操作调用 https API 不起作用

转载 作者:行者123 更新时间:2023-12-02 23:31:29 25 4
gpt4 key购买 nike

我正在使用 IBM Watson 创建一个助手。助手将一些信息传递给 Web 操作,该操作调用 https API 并以 JSON 格式将数据取回到助手。

看起来网络操作只能工作,但偶尔会出现一条消息“错误:该操作未产生有效响应并意外退出。”弹出。目前尚不清楚何时或什么触发了故障。在几秒钟内多次调用完全相同的操作会导致错误消息随机出现(我没有在调用之间更改操作或代码中的任何内容)。如果没有错误,则代码可以正常工作并提供预期的答案。

这里是紧凑的代码:

function main(msg){
const https = require('https');
var reqUrl = https URL;

return new Promise(function(resolve, reject) {
https.get(reqUrl, (responseFromAPI) => {
responseFromAPI.on('data', (chunk) => {
completeResponse += chunk;
let movie_info = JSON.parse(completeResponse);
movie_info = movie_info.results[0];
console.log(movie_info);
resolve({movie_info});
})
responseFromAPI.on('error', (error) => {
console.log(error);
reject(error);
});
});
});
}

错误日志如下:

[ “2019-06-06T14:35:32.697875Z stderr:未定义:1”, "2019-06-06T14:35:32.697909Z stderr: {\"page\":1,\"total_results\":76,\"total_pages\":4,\"results\":[{\"vote_count\":39,\"id\":541560,\"video\":false,\"vote_average\":5,\"title\":\"The Wind\",\"受欢迎度\":37.299,\"poster_path\":\"\/kcfPHZHSQODLCWdkUVLYATNyEVo.jpg\",\"original_language\":\"en\",\"original_title\":\"The Wind\",\"genre_ids\":[27,37 ,53],\"backdrop_path\":\"\/bqi6QBbXmkBar98HJJKEV1HFx71.jpg\",\"adult\":false,\"overview\":\"一部以 1800 年代末西部边境为背景的超自然惊悚片,凯特琳·杰拉德 (Wind) 饰演一位因荒野的严酷和孤立而陷入疯狂的平原妇女。\",\"release_date\":\"2019-06-06\"},{\"vote_count\":2832,\"id\":353491、\"video\":false、\"vote_average\":5.6、\"title\":\"黑暗塔\"、\"人气\":18.474、\"poster_path\":\"\/i9GUSgddIqrroubiLsvvMRYyRy0.jpg\",\"original_language\":\"en\",\"original_title\":\"黑暗塔\",\"genre_ids\":[28,14,878,37 ,27],\"backdrop_path\":\"\/pVVobDO8cezhVPvwD6EBUN0g3mt.jpg\",\"adult\":false,\"overview\":\"最后的枪手罗兰·德链已陷入永恒的战斗与沃尔特·奥迪姆 (Walter O'Dim) 一起,也被称为“”, “2019-06-06T14:35:32.697914Z 标准错误:”, “2019-06-06T14:35:32.697951Z stderr:语法错误:JSON 输入意外结束”, “2019-06-06T14:35:32.697955Z stderr:在JSON.parse()”, “2019-06-06T14:35:32.697959Z stderr:在IncomingMessage.responseFromAPI.on(在NodeActionRunner.init(/nodejsAction/runner.js:79:45),:10:3​​8)评估”, “2019-06-06T14:35:32.697963Z stderr:在IncomingMessage.emit(events.js:189:13)”, “2019-06-06T14:35:32.697968Z stderr:在IncomingMessage.Readable.read(_stream_readable.js:487:10)”, “2019-06-06T14:35:32.697972Z stderr:在流中(_stream_read.js:931:34)”, “2019-06-06T14:35:32.697976Z stderr:在resume_(_stream_read.js:912:3)”, “2019-06-06T14:35:32.697980Z stderr:在process._tickCallback(内部/process/next_tick.js:63:19)”, “未知未知:收集日志时出现问题。数据可能丢失。”]

movie_info 是电影和数据的列表,因此代码只获取位置 [0] 的数据(这里是电影《风》)。

我联系了 API 主机,他们说 API 工作正常,因此问题可能来自网络操作本身。

感谢任何帮助。

最佳答案

您并不解析所有响应,而仅解析第一个 block

function main(msg){
const https = require('https');
var reqUrl = https URL;

return new Promise(function(resolve, reject) {
https.get(reqUrl, (responseFromAPI) => {
const chunks = [];
responseFromAPI
.on('data', chunk => chunks.push(chunk))
.on('end', _=> {
let movie_info = JSON.parse(Buffer.concat(chunks));
movie_info = movie_info.results[0];
console.log(movie_info);
resolve({movie_info});
})
.on('error', (error) => {
console.log(error);
reject(error);
});
});
});
}

关于javascript - IBM Web 操作调用 https API 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56480060/

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