我正在尝试为外部网站创建 express.js 代理以从那里获取音频数据。我知道类似 的模块http-proxy
,但认为对于只有一个 url 绑定请求通过代理的情况来说它们是多余的。我正在使用下面的代码:
express.get('/proxy', function (req, res) {
var options ={
host: "website.com",
port: 80,
path: "/audio/test.mp3",
method: 'GET'
};
http.get(options, function (audioRes) {
var data = [], dataLen = 0;
audioRes.on('data', function(chunk) {
data.push(chunk);
dataLen += chunk.length;
})
.on('end', function() {
var buf = new Buffer(dataLen);
res.set(audioRes.headers);
res.send(buf);
});
})
.on('error', function (error) {
console.log(error.message);
});
});
我收到回复,但无法将其解码为有效音频。在使用 Fiddler 进行调试时,我发现服务器发送的字节数与Content-Length
标头中指定的数字不匹配(这表明检索的字节数较少)。
我无法弄清楚如何正确返回从远程服务器检索到的确切响应。将不胜感激任何帮助。