请教一个HTTPS请求得到结果加密的问题
我使用了request来请求URL,由于请求的是HTTPS,返回的数据是乱码的。但是我请求一些其他的HTTS的时候,返回的数据是正常的必然Cnode的API。 查询了request的HTTPS方法,依旧返回的是乱码的结果。 请我这是怎么回事?为什么有些的HTTPS请求得到的数据是不会有问题的?而有些的URL请求得到的结果是乱码?是还需要解密吗?谢谢!
我的部分代码
op = {
agentOptions:
cert: fs.readFileSync(certFile)
key: fs.readFileSync(keyFile)
passphrase: 'password'
secureProtocol: 'SSLv3_method'
url:url
headers:self.headers
}
requrest.get op, (err, res, body) ->
return console.log err if err
console.log(body)
2 回复
通过使用Python的requests来访问同一URL,可以正确解析到JSON数据。然后查看node的request文档,发现了一个gzip
参数,将此参数设置为true
,则可正确的得到解析的JSON的数据,没有像出现乱码一样的问题。
PS:我使用charles来进行API分析的时候,用到了HTTPS,没有使用HTTPS代理时请求和得到的数据都是乱码的。应该是因为加密的原因。所有我用Node来访问的时候遇到乱码,以为也是加密的原因导致。其实应该是服务器启用了gzip
。
参考:http://www.cnblogs.com/tankxiao/archive/2012/11/13/2749055.html
呃。request 竟然不会自动识别 gzip response