我需要使用用户名/密码组合从服务器获取令牌,然后在收到令牌后,我需要发送第二个请求,使用令牌作为头部内容。目前为止,这是我所拥有的:
var requestData = {
'username': 'myUser',
'password': 'myPassword1234'
}
var options = {
hostname: 'localhost',
port: 8080,
path: '/login',
method: 'POST',
headers: {
'Content-Type': 'application/json',
}
}
var req = http.request(options, function(res) {
console.log("Status: " + res.statusCode)
res.setEncoding('utf8');
let body = ""
res.on('data', function (data) {
if (res.statusCode == 200) {
console.log("Success")
body += data
} else {
invalidLogin()
}
})
res.on('end', function () {
body = JSON.parse(body)
console.log("DONE")
console.log(body)
validLogin(body["token"])
})
})
req.on('error', function(e) {
console.log('error: ' + e.message)
})
req.write(JSON.stringify(requestData))
req.end()
然后在validLogin()
函数中(此函数在第一个请求中被调用),我有以下代码:
function validLogin(token) {
console.log(token)
var options = {
hostname: 'localhost',
port: 8080,
path: '/dashboard',
method: 'GET',
headers: {
'Authorization': token,
}
}
var req = http.request(options, function(res) {
console.log("Status: " + res.statusCode)
res.setEncoding('utf8');
let body = ""
res.on('data', function (data) {
if (res.statusCode == 200) {
body += data
} else {
console.log(body)
}
})
res.on('end', function() {
console.log(body)
})
})
req.on('error', function(e) {
console.log('error: ' + e.message)
})
req.end()
}
第一个请求按预期工作并响应,但第二个请求永远不会执行。我知道该函数被调用了,因为它会在控制台打印,但请求没有输出任何内容。