そこから音声データを取得するために、外部 Web サイトへの express.js プロキシを作成しようとしています。のようなモジュールについては知っていますがhttp-proxy
、URL バインドされたリクエストが 1 つだけプロキシを通過する場合には過剰だと思います。以下のコードを使用しています。
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
バイト数がヘッダーで指定された数と一致しないことがわかりました (取得されるバイト数が少ないことを示します)。
リモート サーバーから取得した正確な応答を正しく返す方法がわかりません。どんな助けにも感謝します。