【发布时间】:2016-02-19 16:36:41
【问题描述】:
我正在编写一个节点脚本来发出多个 HTTPS 请求。第二次调用依赖于第一次调用 uri 参数。我可以使用节点请求模块从第一次调用中检索数据。但坚持第二次调用,因为我需要将 uri 参数从第一次调用传递到第二个 url。目标是在第一次调用时获取所有服务器并在第二次调用时获取服务器属性,直到我遍历所有用户。
我也尝试过使用 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。刚刚编辑了代码。
-
是的,异步的。目前,我只想完成获取服务器属性。这是我的最终目标。
-
我在这里只看到一个请求(最初的
request.get()调用)。您在哪里向其他服务器发出请求?另外,您是否有意多次覆盖您的服务器变量,包括在.map()函数中? -
@paul 我还没有,因为我不确定要采取哪些步骤。这就是我卡住的地方。我不知道我是否需要发出嵌套请求或另一个 get 请求。
标签: javascript node.js api rest httprequest