Json 是否使用node.js v4.2.6连接到HTTPS web服务API?
我正在考虑连接到https web api,我通过接收一封关于它的电子邮件获得了我的令牌和用户名,并且实际上没有任何示例代码可以使用node连接到它;然而,也有Java和C#的示例,基于这些示例,我提出了Json 是否使用node.js v4.2.6连接到HTTPS web服务API?,json,node.js,web-services,https,Json,Node.js,Web Services,Https,我正在考虑连接到https web api,我通过接收一封关于它的电子邮件获得了我的令牌和用户名,并且实际上没有任何示例代码可以使用node连接到它;然而,也有Java和C#的示例,基于这些示例,我提出了 /* WEB API: https://www.careeronestop.org/Developers/WebAPI/technical-information.aspx?frd=true */ // UserID: ... // Token Key: ...== // Your agr
/* WEB API: https://www.careeronestop.org/Developers/WebAPI/technical-information.aspx?frd=true */
// UserID: ...
// Token Key: ...==
// Your agreement will expire three years from today on 12/8/2019 and all Web API services will be discontinued,
// unless you renew.
var https = require('https');
var username = '...';
var tokenKey = "...==";
var options = {
host: 'api.careeronestop.org',
port: 443,
path: '/v1/jobsearch/' + username + '/Computer%20Programmer/15904/200/2',
method: 'GET',
headers: {
'Content-Type' : 'application/json',
'Authorization' : '' + new Buffer(tokenKey.toString('base64'))
}
};
var req = https.request(options, function(res) {
console.log(res.statusCode);
res.on('data', function(d) {
process.stdout.write(d);
});
});
req.end();
req.on('error', function(e) {
console.error(e);
});
然而,不幸的是,它返回了一个401 Unauthorized
,因此是否需要添加任何内容才能使其正常工作?可能有一些头?我过去常常提交一个请求,然后查看Chrome调试器网络选项卡以查看到底发送了什么请求
授权标头应如下所示:
Authorization: Bearer 901287340912874309123784
您还需要:
Accept: application/json
因此,假设tokenKey已经是一个字符串,因为它似乎是通过电子邮件发送给您的,您可以将代码更改为:
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer ' + tokenKey
}
我看到的API访问示例(Java)使用名为“Bearer”的自定义头作为令牌,而不是像“Authorization”这样的头。你有没有看到一些文件建议你应该使用“授权”?还有,为什么要使用缓冲区?标题是字符串,不是二进制的。它还显示了“application/json”的一个“Accept”头。@jfriend00你是在说这个吗
httpGet.setHeader(“授权”、“承载API令牌”)
No,我不懂Java,但我看到的是:http.DefaultRequestHeaders.Authorization=newauthenticationheadervalue(“承载”、“您的API令牌”)代码>你在看什么文档?uou是否尝试过这样的“授权”:“+tokenKeyFYI,如果你对原始HTTP请求的外观感到困惑,你可以使用,然后在Chrome调试器中打开网络选项卡,查看它到底发送了什么请求。