gpt4 book ai didi

node.js - 对外部 API 的 https 请求时套接字挂起错误?

转载 作者:太空宇宙 更新时间:2023-11-04 01:03:14 27 4
gpt4 key购买 nike

我在尝试访问外部 API 时收到套接字挂断错误。即使使用我的 API key (用于在网站上演示 API 的开发 API key ),也可以手动访问外部 API ( click here ) 并返回结果。

我正在使用的代码如下所示。请注意,当您看到 my_api_key 时,真实 key 就存在。

var zipCodeApiPath = '/rest/my_api_key/radius.json/{{zip}}/15/mile';
...
var https = require('https');
...
var options = {
hostname: 'zipcodedistanceapi.redline13.com',
port: 443,
path: zipCodeApiPath.replace('{{zip}}', zipCode),
method: 'GET',
secureProtocol: 'SSLv3_method'
};
options.agent = new https.Agent(options);

console.log(options);

https.request(options, function(res) {
console.log(res);
...
});

当从控制台注销选项时,我得到以下信息:

{ hostname: 'zipcodedistanceapi.redline13.com',
port: 443,
path: '/rest/my_api_key/radius.json/80549/15/mile',
method: 'GET',
secureProtocol: 'SSLv3_method',
agent:
{ domain: null,
_events: { free: [Function] },
_maxListeners: 10,
options: [Circular],
requests: {},
sockets: {},
maxSockets: 5,
createConnection: [Function: createConnection] } }

为什么不响应?

代码正在进行中

下面是基于 mscdex 的答案正在编写的代码。

var req = https.request(options, function(res) {
var response = '';
res.on('data', function(chunk) {
response += chunk;
});

res.on('end', function() {
var newObj = {
zip: zipCode,
codes: JSON.parse(response).zip_codes
};

coll.insert(newObj, function(err, item) {
if (err) {
callback(err);
}
else {
console.log(item.codes);

callback(null, item.codes);
}
});
});
});
req.end();

req.on('error', function(e) {
console.log(e);
});

最佳答案

这里缺少一些东西:

  • 您没有在请求对象上调用.end(),以便将请求发送到服务器。

  • 您应该从响应流中读取。

关于node.js - 对外部 API 的 https 请求时套接字挂起错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25291329/

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