[英]Images are not proxied correctly when using NodeJS + Request module
我有一个运行良好的代理(据我所知),直到我尝试代理图像(或任何二进制数据?)。 据我估计,下面的代码应该可以,但是不能。 我敢肯定我在做一些显然很愚蠢的事情,但是我一直在研究论坛和api,但尚未找到正确的方法。
我的代理服务器的“核心”如下所示。
function(req, res) {
...
options = {
url: 'a url',
headers: {
'Authorization': auth
}
};
request(options,
function(e, r, b){
var encoding = (r.headers['content-type'].indexOf('image') === -1) ? 'utf8' : 'binary';
res.writeHead(200, {
'Content-Length': r.headers['content-length'],
'Content-Type': r.headers['content-type']
});
if (encoding === 'binary') {
b = new Buffer(b);
}
res.end(b, encoding);
});
}
我在这里想念什么?
在此先感谢您提供的所有帮助!
我的问题不是响应(就像我最初那样),而是请求模块默认将其响应主体编码为unicode的事实,当禁用时( encoding: null
),响应主体将转换为缓冲区容易被响应消耗掉。
options = {
url: url,
encoding: null,
headers: {
'Authorization': auth
}
};
request(options,
function(e, r, b){
var encoding = (r.headers['content-type'].indexOf('image') === -1) ? 'utf8' : 'binary';
res.end(b, encoding);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.