nodejs使用socket5进行代理请求的实现


Posted in NodeJs onFebruary 21, 2020

需要用到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。

到此这篇关于nodejs使用socket5进行代理请求的实现的文章就介绍到这了,更多相关nodejs socket5代理请求内容请搜素三水点靠木以前的文章或下面相关文章,希望大家以后多多支持三水点靠木!

NodeJs 相关文章推荐
Nodejs express框架一个工程中同时使用ejs模版和jade模版
Dec 28 NodeJs
nodejs+express实现文件上传下载管理网站
Mar 15 NodeJs
用nodeJS搭建本地文件服务器的几种方法小结
Mar 16 NodeJs
详解nodejs微信公众号开发——2.自动回复
Apr 10 NodeJs
nodejs连接mysql数据库简单封装示例-mysql模块
Apr 10 NodeJs
nodejs利用ajax实现网页无刷新上传图片实例代码
Jun 06 NodeJs
NodeJs通过async/await处理异步的方法
Oct 09 NodeJs
nodejs搭建本地服务器并访问文件操作示例
May 11 NodeJs
typescript nodejs 依赖注入实现方法代码详解
Jul 21 NodeJs
纯异步nodejs文件夹(目录)复制功能
Sep 03 NodeJs
5分钟教你用nodeJS手写一个mock数据服务器的方法
Sep 10 NodeJs
nodejs对mongodb数据库的增加修删该查实例代码
Jan 05 NodeJs
linux 下以二进制的方式安装 nodejs
Feb 12 #NodeJs
nodejs实现百度舆情接口应用示例
Feb 07 #NodeJs
使用nodeJS中的fs模块对文件及目录进行读写,删除,追加,等操作详解
Feb 06 #NodeJs
nodejs nedb 封装库与使用方法示例
Feb 06 #NodeJs
nodejs实现的http、https 请求封装操作示例
Feb 06 #NodeJs
Nodejs + Websocket 指定发送及群聊的实现
Jan 09 #NodeJs
nodeJs的安装与npm全局环境变量的配置详解
Jan 06 #NodeJs
You might like
文章推荐系统(二)
2006/10/09 PHP
PHP Parse Error: syntax error, unexpected $end 错误的解决办法
2012/06/05 PHP
php将字符串全部转换成大写或者小写的方法
2015/03/17 PHP
php框架CodeIgniter使用redis的方法分析
2018/04/13 PHP
MooTools 1.2中的Drag.Move来实现拖放
2009/09/15 Javascript
TBCompressor js代码压缩
2011/01/05 Javascript
jQuery实现列表自动滚动循环滚动展示新闻
2014/08/22 Javascript
Node.js编程中客户端Session的使用详解
2015/06/23 Javascript
jquery实现漂亮的二级下拉菜单代码
2015/08/26 Javascript
AngularJS基础 ng-keyup 指令简单示例
2016/08/02 Javascript
前端js实现文件的断点续传 后端PHP文件接收
2016/10/14 Javascript
js代码实现下拉菜单【推荐】
2016/12/15 Javascript
微信小程序 scroll-view隐藏滚动条详解
2017/01/16 Javascript
vue实现添加标签demo示例代码
2017/01/21 Javascript
javascriptvoid(0)含义以及与"#"的区别讲解
2019/01/19 Javascript
更优雅的微信小程序骨架屏实现详解
2019/08/07 Javascript
html2canvas属性和使用方法以及如何使用html2canvas将HTML内容写入Canvas生成图片
2020/01/12 Javascript
es6函数之严格模式用法实例分析
2020/03/17 Javascript
vue elementui tree 任意级别拖拽功能代码
2020/08/31 Javascript
[01:41]DOTA2超级联赛专访YYF 称一辈子难忘TI2
2013/05/28 DOTA
python字符串的方法与操作大全
2018/01/30 Python
python批量处理文件或文件夹
2020/07/28 Python
Python代码生成视频的缩略图的实例讲解
2019/12/22 Python
Python3 A*寻路算法实现方式
2019/12/24 Python
信号生成及DFT的python实现方式
2020/02/25 Python
美国著名珠宝品牌之一:Jared The Galleria Of Jewelry
2016/10/01 全球购物
FLOS美国官网:意大利高级照明工艺的传奇
2018/08/07 全球购物
大学生水文观测实习自我鉴定
2013/09/29 职场文书
家居设计专业个人自荐信范文
2013/11/26 职场文书
高二物理教学反思
2014/02/08 职场文书
社区平安建设方案
2014/05/25 职场文书
大学生创业计划书
2014/08/14 职场文书
2015年社区文体活动总结
2015/03/25 职场文书
祝酒词范文
2015/08/12 职场文书
2016预备党员培训心得体会
2016/01/08 职场文书
2016年企业先进员工事迹材料
2016/02/25 职场文书