【发布时间】:2016-04-07 18:37:27
【问题描述】:
我目前遇到一个问题,http.request() 只是失败/跳过向给定 url 发出请求。我有以下设置
async.waterfall([
firstFunc,
secondFunc,
thirdFunc
], function last(err, result){});
thirdFunc 是我提出请求的地方,如下所示
function thirdFunc(payload, callback){
var responseFromCS = getData(payload);
callback(null, responseFromCS);
}
getData 函数如下所示
function getData(obj){
var curlttogetdata = csConstants.BasePath + csConstants.account_num;
var accountNum = obj.customer.accountnum;
var resData = null;
curlttogetdata = curlttogetdata.replace('${accntNum}', accountNum);
var getData = {
hostname: csURLHost,
path: curlttogetdata,
method:'GET',
headers: {
'X-consumer-id': csConstants.ConsumerIDHeader,
'Content-Type':'application/json'
}
};
var req = http.request(getData, function (res){
var body = '';
res.on('data', function getData(chunk){
body += chunk
});
res.on('end', function parseData(){
try {
resData = JSON.parse(body);
}catch(err){
resData = false;
}
});
});
req.on('error', function csResponseError(err){
resData = false;
});
req.end();
return resData;
}
现在在调试时,一旦调试器到达 http.request(...),它就无法进入回调或发出请求,然后直接进入 req.end()。没有返回错误。我已经多次查看了 getData 对象中的参数,一切看起来都很好。甚至用 curl 对此进行了测试并返回了预期的响应。
【问题讨论】:
-
http使用哪个库? -
核心节点'http'模块,我想我有答案并且知道我为什么会遇到这个问题。我会尽快发布我的答案
标签: node.js