我正在考虑连接到https网络API,我已经通过接收有关它的电子邮件获取了我的令牌和用户名,并且没有任何示例代码可以连接到the webservice使用节点;但是有一些Java和C#的例子,基于这些就是我想出来的......
/* 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
,那么是否需要添加任何内容才能使其正常工作?有些标题可能吗?
答案 0 :(得分:0)
我使用this form提交请求,然后查看了Chrome调试器网络标签,以确切了解发送的请求。
授权标题应该如下所示:
Authorization: Bearer 901287340912874309123784
你也想要这个:
Accept: application/json
因此,假设tokenKey已经是一个字符串,因为它似乎是通过电子邮件发送给您的,您可以将代码更改为:
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer ' + tokenKey
}