我正在編寫一個節點腳本來發出多個HTTPS請求。第二個調用依賴於uri params的第一個調用。我能夠通過使用節點請求模塊從第一次調用中檢索數據。但堅持第二個調用,因爲我需要從uri param從第一個調用傳遞到第二個url。目標是在第一次調用時獲取所有服務器,並在第二次調用時獲取服務器屬性,直到我遍歷所有用戶。節點嵌套的HTTPS請求
我也嘗試過使用Promise,但當我必須進行第二次調用時卡住了。
請提供工作示例。
這裏是我的代碼:
/**********************************************************************
DEPENDCIES MODULES
***********************************************************************/
var express = require('express');
var request = require('request');
var app = express();
/*************************************************************************
SOLUTION
*************************************************************************/
var username = '123',
password = 'password*',
role = 'Read-Only',
url_host = 'https://link.com:1000'
var url1 = url_host + '/type/PropertySetClasses/SystemObject/Servers/?username=' + username + '&password=' + password + '&role=' + role;
var url2 = url_host + server_id[i] + '?username=' + username + '&password=' + password + '&role=' + role;
var auth = "Basic " + new Buffer(username + ':' + password).toString("base64");
if ('development' == app.get('env')) {
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
}
request.get(
{
url: url1,
headers: {
'Authorization': auth,
'Content-Type': 'application/json',
'Accept': 'application/json'
}
},
// FETCH ALL SERVERS
function (error, response, body) {
if(!error && response.statusCode == 200) {
var servers = JSON.parse(body);
servers = servers.PropertySetClassChildrenResponse.PropertySetClassChildren.PropertySetInstances.Elements;
// console.log(JSON.stringify(servers));
var server_id = [];
var result = servers.map(function(server) {
servers = server.uri;
server_id.push(servers);
});
// console.log(JSON.stringify(server_id));
}
}
); // END REQUEST
var url2 = url_host + id_array [i] ...是這個「id_array」是指「server_id」?而你想異步獲取並處理「server_id」,我是對嗎? –
對不起。是的,它指的是server_id。剛剛編輯了代碼。 –
是的,是異步的。目前,我只想完成抓取服務器屬性。這是我的最終目標。 –