Node.js 应用程序从 GET 请求到 API 接收到空响应
Posted
技术标签:
【中文标题】Node.js 应用程序从 GET 请求到 API 接收到空响应【英文标题】:Node.js app receives empty response from GET request to API 【发布时间】:2017-05-06 05:36:15 【问题描述】:我是 node.js 的新手,所以我会尽力在这里解释问题。让我知道是否需要任何澄清。
在我的 node.js 应用程序中,我试图获取一个代码(从第一次调用 API 的响应中收到),并使用该代码向另一个 API 发出第二次请求(GET 请求)服务。第一次调用的回调地址是/pass
。但是,我从服务中获得了第二次通话的empty response
。
我的理解是,在第一次调用回调后,app.get('/pass', function (req, res)..
中的函数被调用并发送GET
请求。我在这里做错了什么?非常感谢!
这是我尝试从 node.js 服务器发出 GET 请求并收到空响应的部分:
app.get('/pass', function (req, res)
var options =
url: 'https://the url that I make GET request to',
method: 'GET',
headers:
'authorization_code': code,
'Customer-Id':'someID',
'Customer-Secret':'somePassword'
;
request(options, function(err, res, body)
console.log(res);
);
);
【问题讨论】:
err
有什么东西吗?
上面写着:ERR_EMPTY_RESPONSE
【参考方案1】:
我对你的要求有点困惑,所以我只是试图掩盖我认为你在寻找的东西。
app.get('/pass', (req, res) =>
res.send("hello!"); // localhost:port/pass will return hello
)
现在,如果您在调用 /pass 端点时尝试从请求库调用 get 请求,情况仍然相似。首先,我认为您可以删除 'method' : 'GET' 键和值,因为它们不是必需的。现在除了响应之外,代码将与之前基本相同。
app.get('/pass', (req, res) =>
var options =
url: 'https://the url that I make GET request to',
headers:
'authorization_code': code,
'Customer-Id':'someID',
'Customer-Secret':'somePassword'
;
request(options, function(err, res, body)
// may need to JSONparse the body before sending depending on what is to be expected.
res.send(body); // this sends the data back
);
);
【讨论】:
谢谢@reedb89 关于app.get('/pass', (req, res)
,这是我上次通话的回拨网址。我认为在我的节点应用程序收到第一次调用的响应后,我的浏览器会转到 localhost:8080/pass?code=xyz...。我尝试使用该代码在此app.get('/pass', (req,res)
中进行第二次调用。所以我认为你回答中的res.send(body)
是第二次通话的res 吗?我不明白为什么我需要发回数据?
我想对第二次调用的 res 做的是,我想先看看它并从中检索一些值。这就是为什么我尝试将它登录到控制台..
console.log(body) 是否为您提供所需的内容?
不,body
表示“未定义”,与 res
相同。我从浏览器看到的错误首先是“空响应”,然后是“超时”。 err, res, body
是我从发送到 https://the url that I make GET request to
的请求中得到的响应 qith 所有标头对吗?
浏览器显示“超时”,因为您没有返回响应。是的,err、res、body 来自传递给请求方法的选项。 Tbh 我真的没有在这里看到任何问题。也许尝试删除标题并使用 www.google.com 作为测试。代码是在其他地方声明的全局变量吗?该文档在标题方面定义得非常好:github.com/request/request以上是关于Node.js 应用程序从 GET 请求到 API 接收到空响应的主要内容,如果未能解决你的问题,请参考以下文章
当您不知道页数时,如何使用 Node.js 在 while 循环中向 API 发出多个分页 GET 请求?
从 Angular 2 客户端到 Node.js 服务器的 HTTP POST 请求
node.js http.get 在向远程站点发出 5 次请求后挂起