我正在尝试使用node.js进行GET请求。这个请求是发到一个REST服务端的,该服务端将访问Hbase并返回数据。GET请求中包含了所有必要的Hbase信息(表、键、列族等)。以下是代码。
var http = require('http');
var url = {
host: '127.0.0.1',
port: 8000,
path: '/table-name/key/column-family',
headers: {
'Content-Type': 'application/octet-stream'
},
};
http.get(url, function(resp){
console.log("Status: " + resp.statusCode);
console.log("Header: " + JSON.stringify(resp.headers));
resp.setEncoding('utf8');
var completeResponse = '';
resp.on('data', function (chunk) {
completeResponse += chunk;
});
resp.on('end', function(chunk) {
console.log(completeResponse);
});
});
我的问题是我得到的响应并不总是像请求的八位字节流那样。大多数情况下,数据采用以下格式的有效头。
{"content-length":"454","x-timestamp":"1395469504346","content-type":"application/octet-stream"}
但是,假设有10次请求中有1次响应是带有以下标头的XML字符串。
{"content-type":"text/xml","content-length":"793"}
在这两种情况下,状态码都是200,并且我总是请求一个已存在的键。这种行为似乎是随机的,不是由任何特定的键引起的。
如何确保响应始终为八位字节流,而不是XML / JSON?