nodejs中request库使用HTTPS代理的方法-创新互联
正在尝试改用NodeJS编写爬虫,http请求库选择了 request ,用起来还是挺简单的。
创新互联专注于企业成都营销网站建设、网站重做改版、高平网站定制设计、自适应品牌网站建设、H5场景定制、商城开发、集团公司官网建设、成都外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为高平等各大城市提供网站开发制作服务。现在有个需求,需要用Fiddler抓包我发出去的请求,以便和浏览器发出去的包进行对比。
因为需要解密HTTPS报文,需要让node要么忽略证书安全,要么信任Fiddler的CA证书。
网上找了一圈,总结如下:
方法一:设置环境变量
- 设置环境变量NODE_TLS_REJECT_UNAUTHORIZED=0
- 即"不拒绝未认证的证书"
- 但是直接修改系统环境变量比较危险,因为会影响到所有nodejs的程序;比较稳妥的办法是脚本中调用process.env["NODE_TLS_REJECT_UNAUTHORIZED"] = 0; 这样仅对本进程生效
方法二:每请求单独设置忽略证书安全
- 上述方法还是有一定风险,因为当前nodejs进程都受此全局设置影响
- 可以在request的options中添加rejectUnauthorized: false选项来针对单个请求忽略证书检查
- 当然也可以用request.defaults直接设置默认选项
const request = require("request").defaults({ proxy: "http://127.0.0.1:8888", rejectUnauthorized: false, }) request.get("https://www.baidu.com").on("response", console.log)
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
文章名称:nodejs中request库使用HTTPS代理的方法-创新互联
文章URL:http://myzitong.com/article/dosicc.html