おそらくあなたのトラブルは'Accept-Encoding'
ヘッダーにあります。
const req = request(options, res => {
let buffers = []
let bufferLength = 0
let strings = []
const getData = chunk => {
if (!Buffer.isBuffer(chunk)) {
strings.push(chunk)
} else if (chunk.length) {
bufferLength += chunk.length
buffers.push(chunk)
}
}
const endData =() => {
let response = {code: 200, body: ''}
if (bufferLength) {
response.body = Buffer.concat(buffers, bufferLength)
if (options.encoding !== null) {
response.body = response.body.toString(options.encoding)
}
buffers = []
bufferLength = 0
} else if (strings.length) {
if (options.encoding === 'utf8' && strings[0].length > 0 && strings[0][0] === '\uFEFF') {
strings[0] = strings[0].substring(1)
}
response.body = strings.join('')
}
console.log('response', response)
};
switch (res.headers['content-encoding']) {
// or, just use zlib.createUnzip() to handle both cases
case 'gzip':
res.pipe(zlib.createGunzip())
.on('data', getData)
.on('end', endData)
break;
case 'deflate':
res.pipe(zlib.createInflate())
.on('data', getData)
.on('end', endData)
break;
default:
res.pipe(zlib.createInflate())
.on('data', getData)
.on('end', endData)
break;
}
});
:
はデータを解凍するには、次のコードを使用して、このヘッダーを削除
- : だが、それがそうなら、あなたはこれを修正するには2つの方法を持っているあなたは
'Accept-Encoding': 'gzip,deflate'
のようなヘッダを持っているとしましょう
あなたはどのエディターを使用していますか? – Amberlamps
あなたは 'content-type'ヘッダと' encoding'を混ぜ合わせました。例えば '' encoding '': "utf-8" 'です。しかし、ページは 'UTF-8'ではなく' ISO-8859-1'でエンコードされています。そのためには、http://stackoverflow.com/questions/8915404/http-get-and-iso-8859-1-encoded-responsesを参照してください。 –
@Amberlamps:私はメモ帳を使用しています。++ – hippie