求教:http请求网络数据,reponse body的返回的数据是乱码?怎么解决?
发布于 8 年前 作者 corianderHunter 5986 次浏览 来自 问答

var agent = https.request(option,function(ress){ var chunks = []; ress.setEncoding(‘utf8’); console.log(ress.statusCode); ress.on(‘data’, function(chunk){ chunks.push(chunk); console.log(chunk); }); ress.on(‘end’,function(){ var dataStr = chunks.toString(‘utf8’); console.log(dataStr); }); }); agent.write(param); agent.end();

请求已经成功返回200,但是为什么打印出来的是乱码?
`ˡ� �W�]�(�ѹ��Ę�sP�39�]���e���������i������1�s�G��I�HN%��� !C!�=�Q�TN�KPQ��4����!�Ba  `

Resonpse Headers是这样的:
Date: Mon, 05 Sep 2016 14:45:49 GMT
Content-Type: application/json;charset=UTF-8
Content-Length: 88
Connection: keep-alive
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, PUT, GET, OPTIONS, DELETE
Access-Control-Max-Age: 3600
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, HTTP-CONSUMER-KEY, HTTP-DEVICE-TYPE,HTTP-DEVICE-ID, HTTP-SIGNATURE, HTTP-	  ACCESS-TOKEN, HTTP-TIMESTAMP,HTTP-APP-VERSION,WALLE_AUTH_KEY, HTTP-REQUEST-TYPE, HTTP-REQUEST-AUTH, Date, version
Access-Control-Expose-Headers: X-My-Custom-Header, X-Another-Custom-Header, Date, version,imgHash
Content-Encoding: gzip

在浏览器中正常的返回的数据是json String:
{"err_code":"AUTH_ERROR_524","msg":"图形验证码错误","data":""}


**为什么会出现这样的情况,应该怎么解决 ,求大神解惑**
6 回复

妈的你是程序员啊!!!乱码!!!专业点好吗!!!!

@captainblue2013 大哥原谅的我无知,我的提问是哪里有问题么。。。

gzip 你需要解压缩

let b = Buffer.concat(chunks);
b = zlib.unzipSync(b);

@magicdawn 非常感谢 但是我解压 ,又有报错:

Error: incorrect header check

想了找了很久还是没有解决方法。

回到顶部