对于一定数量的变量(~100),我正在进行以下相当简单的系列请求(不同的主机名和路径也会出现问题,但是当很多类似的请求被发送到同一主机时)
var http = require('http');
var request = http.request({
hostname: 'lookup.dbpedia.org',
path: '/api/search/KeywordSearch?QueryString=' + [VARIABLE],
headers: {
'Accept': 'application/json'
}
});
request.on('response', function (response) {
var data = [];
response.on('data', function (chunk) {
data.push(chunk);
});
response.on('end', function () {
var object = JSON.parse(data.join(''))
});
});
request.end();
问题是响应的最后一块有时没有被response.on('data')
捕获,因此JSON.parse会出错。
更奇怪的是,这只会发生在我的计算机上,而不会发生在另一个上(两者都是Windows 7)。
对于节点v0.12.2和v0.12.7,问题仍然存在,并且到目前为止我可以测试,这是一个节点问题,因为curl
之类的东西总是返回整个响应。
有什么想法吗?