请教一个HTTPS请求得到结果加密的问题
发布于 10 年前 作者 youqingkui 5054 次浏览 最后一次编辑是 8 年前 来自 问答

我使用了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

回到顶部