【发布时间】:2016-11-04 06:36:38
【问题描述】:
我无法通过使用简单的“请求”npm 模块进行 oauth 令牌身份验证来取回令牌。
var request = require('request');
var payload = {
'grant_type': "password",
'username': user,
'password': pass,
'client_id': client_id,
'client_secret': client_secret,
'scope' : "internal"
};
var options = {
method: 'POST',
url: host,
headers: {
//'accept': "application/json",
'content-type': "application/x-www-form-urlencoded"
},
form: JSON.stringify(payload)
};
function callback(error, response, body) {
if (!error && response.statusCode == 200) {
var info = JSON.parse(body);
console.log(info);
} else {
console.log(error);
//console.log(response.statusCode);
}
}
request(options, callback);
返回以下错误:
Error: getaddrinfo ENOTFOUND www.rest.synthesio.com www.rest.synthesio.com:443
at errnoException (dns.js:28:10)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:79:26)
code: 'ENOTFOUND',
errno: 'ENOTFOUND',
syscall: 'getaddrinfo',
hostname: 'www.rest.synthesio.com',
host: 'www.rest.synthesio.com',
port: 443 }
知道为什么我会收到 ENOTFOUND 错误吗?不知道为什么它也没有附加完整的 URL。
这些是 URL 的两个部分:
主机网址:'https://www.rest.synthesio.com/'
令牌路径:security/v1/oauth/token
请帮忙。我什么都试过了!!!
【问题讨论】:
-
我可以使用 POSTMAN api 工具但不能通过我的 JS 代码 :( womp
-
您是否在 Node 代码中指定了“http”或“https”之类的协议?
-
@arjabbar 如果我使用 'request' npm 模块而不是 http 模块,为什么我需要指定 http 或 https?如果我错了,请纠正我。谢谢
-
我不知道。我以前从未使用过请求。我只好问了。
-
您肯定需要 URL 中的协议/方案才能使其正常工作。我通过 request@2.72.0 确认了这一点。我也看到该 URL 的 DNS 错误。您能否在问题中提供您的 Postman 请求标头和信息?
标签: javascript node.js request oauth2