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打包工具整合到鼠标右键的方法
May 11 NodeJs
用nodejs实现PHP的print_r函数代码
Mar 14 NodeJs
基于NodeJS的前后端分离的思考与实践(五)多终端适配
Sep 26 NodeJs
nodejs实现HTTPS发起POST请求
Apr 23 NodeJs
Nodejs获取网络数据并生成Excel表格
Mar 31 NodeJs
Express与NodeJs创建服务器的两种方法
Feb 06 NodeJs
nodejs入门教程三:调用内部和外部方法示例
Apr 24 NodeJs
详解nodejs异步I/O和事件循环
Jun 07 NodeJs
nodejs读取并去重excel文件
Apr 22 NodeJs
图解NodeJS实现登录注册功能
Sep 16 NodeJs
Nodejs使用archiver-zip-encrypted库加密压缩文件时报错(解决方案)
Nov 18 NodeJs
NodeJS实现一个聊天室功能
Nov 25 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
在yii中新增一个用户验证的方法详解
2013/06/20 PHP
windows8.1下Apache+Php+MySQL配置步骤
2015/10/30 PHP
php文件操作小结(删除指定文件/获取文件夹下的文件名/读取文件夹下图片名)
2016/05/09 PHP
php获取一定范围内取N个不重复的随机数
2016/05/28 PHP
PHP实现登录搜狐广告获取广告联盟数据的方法【附demo源码】
2016/10/14 PHP
thinkPHP中_initialize方法实例分析
2016/12/05 PHP
使用javascript为网页增加夜间模式
2014/01/26 Javascript
三种取消选中单选框radio的方法
2014/09/09 Javascript
jq实现左滑显示删除按钮,点击删除实现删除数据功能(推荐)
2016/08/23 Javascript
JS实现的计数排序与基数排序算法示例
2017/12/04 Javascript
浅谈vuejs实现数据驱动视图原理
2018/02/23 Javascript
Vue CLI 3搭建vue+vuex最全分析(推荐)
2018/09/27 Javascript
详解angular2 控制视图的封装模式
2018/12/27 Javascript
JS查找孩子节点简单示例
2019/07/25 Javascript
js 实现watch监听数据变化的代码
2019/10/13 Javascript
js实现数据导出为EXCEL(支持大量数据导出)
2020/03/31 Javascript
Vue项目如何引入bootstrap、elementUI、echarts
2020/11/26 Vue.js
Python编程之event对象的用法实例分析
2017/03/23 Python
在python3.5中使用OpenCV的实例讲解
2018/04/02 Python
Python多继承顺序实例分析
2018/05/26 Python
Python 网络编程之TCP客户端/服务端功能示例【基于socket套接字】
2019/10/12 Python
Django Form设置文本框为readonly操作
2020/07/03 Python
利用CSS3实现动态的二级三级菜单效果实例源码
2017/01/04 HTML / CSS
意大利奢侈品网站:Italist
2016/08/23 全球购物
英国版MAC彩妆品牌:Illamasqua
2018/04/18 全球购物
在职研究生自我鉴定
2013/10/16 职场文书
写自荐信要注意什么
2013/12/26 职场文书
单位在职证明范本
2014/01/09 职场文书
上课看小说检讨书
2014/02/22 职场文书
求职信名称怎么写
2014/05/26 职场文书
2014年机关工会工作总结
2014/12/19 职场文书
525心理健康活动总结
2015/05/08 职场文书
2015年度环卫处工作总结
2015/07/24 职场文书
PyTorch 如何设置随机数种子使结果可复现
2021/05/12 Python
python如何正确使用yield
2021/05/21 Python
Python中with上下文管理协议的作用及用法
2022/03/18 Python