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学习笔记之FS文件模块
Jan 13 NodeJs
nodejs入门教程四:URL相关模块用法分析
Apr 24 NodeJs
详解nodejs express下使用redis管理session
Apr 24 NodeJs
nodejs对express中next函数的一些理解
Sep 08 NodeJs
详解使用PM2管理nodejs进程
Oct 24 NodeJs
Nodejs下使用gm圆形裁剪并合成图片的示例
Feb 22 NodeJs
nodejs图片处理工具gm用法小结
Dec 12 NodeJs
PHPStorm中如何对nodejs项目进行单元测试详解
Feb 28 NodeJs
nodejs通过钉钉群机器人推送消息的实现代码
May 05 NodeJs
Sublime Text3 配置 NodeJs 环境的方法
May 20 NodeJs
nodeJS与MySQL实现分页数据以及倒序数据
Jun 05 NodeJs
使用nodejs实现JSON文件自动转Excel的工具(推荐)
Jun 24 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
为了这两部电子管收音机,买了6套全新电子管和10粒刻度盘灯泡
2021/03/02 无线电
PHP中限制IP段访问、禁止IP提交表单的代码
2011/04/23 PHP
PHP获取网页标题的3种实现方法代码实例
2014/04/11 PHP
PHP中使用Session配合Javascript实现文件上传进度条功能
2014/10/15 PHP
JavaScript与HTML结合的基本使用方法整理
2015/10/12 PHP
PHP yii实现model添加默认值的方法(两种方法)
2016/11/10 PHP
[原创]php token使用与验证示例【测试可用】
2017/08/30 PHP
PHP中Static(静态)关键字功能与用法实例分析
2019/04/05 PHP
document.getElementById为空或不是对象的解决方法
2010/01/24 Javascript
使用jQuery.Validate进行客户端验证(初级篇) 不使用微软验证控件的理由
2010/06/28 Javascript
不使用中间变量,交换int型的 a, b两个变量的值。
2010/10/29 Javascript
JavaScript获取onclick、onchange等事件值的代码
2013/07/22 Javascript
JQuery实现倒计时按钮具体方法
2013/11/14 Javascript
JavaScript的21条基本知识点
2014/03/04 Javascript
node.js Web应用框架Express入门指南
2014/05/28 Javascript
javascript禁止访客复制网页内容的实现代码
2015/08/05 Javascript
javascript的BOM
2016/05/03 Javascript
JS及PHP代码编写八大排序算法
2016/07/12 Javascript
JS触摸与手势事件详解
2017/05/09 Javascript
详解VUE 定义全局变量的几种实现方式
2017/06/01 Javascript
基于bootstrop常用类总结(推荐)
2017/09/11 Javascript
js数组方法reduce经典用法代码分享
2018/01/07 Javascript
代码详解JS操作剪贴板
2018/02/11 Javascript
vue路由拦截及页面跳转的设置方法
2018/05/24 Javascript
layer弹出层 iframe层去掉滚动条的实例代码
2018/08/17 Javascript
angular 数据绑定之[]和{{}}的区别
2018/09/25 Javascript
JS实现电话号码的字母组合算法示例
2019/02/26 Javascript
vue 全局封装loading加载教程(全局监听)
2020/11/05 Javascript
Python编程中的for循环语句学习教程
2015/10/14 Python
Python利用ORM控制MongoDB(MongoEngine)的步骤全纪录
2018/09/13 Python
Python的几种主动结束程序方式
2019/11/22 Python
python基本算法之实现归并排序(Merge sort)
2020/09/01 Python
销售人员获奖感言
2014/02/05 职场文书
弘扬雷锋精神活动演讲稿
2014/03/04 职场文书
《忆江南》教学反思
2014/04/07 职场文书
煤矿安全学习心得体会
2016/01/18 职场文书