nodejs使用socket5进行代理请求
需要用到2个库,
request
socks5-http
-client/lib/Agent/
或
socks5-https
-client/lib/Agent
因为一些已知原因,有时候,http.request请求无法拿到数据,
首先想到的是proxy,其次是socket5.
有了以上两个库,接下来的代码超级简单。
const request = require('request'); var httpAgent = require('socks5-http-client/lib/Agent'); var httpsAgent = require('socks5-https-client/lib/Agent'); var Agent = /^https/.test(url) ? httpsAgent : httpAgent; request({ url: url, strictSSL: false, agentClass: Agent }, function(err, res) { console.log(err||res.body,res.statusCode,res.headers); });
当然,也可以修改代理地址:
request({ url: url, strictSSL: false, agentClass: Agent, agentOptions: { socksHost: 'localhost', // Defaults to 'localhost'. socksPort: 1080, // Defaults to 1080. } }, function(err, res) { console.log(err||res.body,res.statusCode,res.headers); });
我有点不理解的地方是:
我使用http.request 的时候,需要自己添加各种headers,来满足请求不报错,而request库却不用写任何headers。
这里留一个flag。如果有知道的朋友,底下留言。
原文地址:https://segmentfault.com/a/1190000021796119
相关推荐
-
看到别人的面试题就忍不住做了一下 javascript/jquery
2019-3-24
-
使用 Angular 打造微前端架构的 ToB 企业级应用 javascript/jquery
2020-7-16
-
工具 之 gulp使用 javascript/jquery
2020-6-11
-
【Leetcode 做题学算法周刊】第五期 javascript/jquery
2020-5-28
-
Ajax简单实现文件异步上传的多种方法 javascript/jquery
2019-3-9
-
从零实现redux和react-redux javascript/jquery
2020-5-26
-
玩转控制台,看看那些你不知道的Console用法 javascript/jquery
2019-1-11
-
JavaScript系列: 一、手撕JS中的深浅拷贝 javascript/jquery
2020-5-28
-
CDN拾遗 javascript/jquery
2019-7-2
-
字节跳动 – 今日头条 – 前端面经 javascript/jquery
2020-6-12