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+html5 实现拖拽上传
Aug 08 NodeJs
nodejs教程之环境安装及运行
Nov 21 NodeJs
nodejs 整合kindEditor实现图片上传
Feb 03 NodeJs
Nodejs中的this详解
Mar 26 NodeJs
nodejs开发——express路由与中间件
Mar 24 NodeJs
nodejs入门教程四:URL相关模块用法分析
Apr 24 NodeJs
NodeJs的fs读写删除移动监听
Apr 28 NodeJs
浅析 NodeJs 的几种文件路径
Jun 07 NodeJs
详解NODEJS基于FFMPEG视频推流测试
Nov 17 NodeJs
Nodejs下使用gm圆形裁剪并合成图片的示例
Feb 22 NodeJs
nodejs爬虫初试superagent和cheerio
Mar 05 NodeJs
NodeJs内存占用过高的排查实战记录
May 10 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
PHP目录函数实现创建、读取目录教程实例
2011/01/13 PHP
php站内搜索关键词变亮的实现方法
2014/12/30 PHP
CI框架(CodeIgniter)公共模型类定义与用法示例
2017/08/10 PHP
PHP Swoole异步Redis客户端实现方法示例
2019/10/24 PHP
如何使用jquery控制CSS样式,并且取消Css样式(如背景色,有实例)
2013/07/09 Javascript
js 获取radio按钮值的实例
2013/08/17 Javascript
获取阴历(农历)和当前日期的js代码
2016/02/15 Javascript
SWFUpload多文件上传及文件个数限制的方法
2016/05/31 Javascript
JavaScript中的对象继承关系
2016/08/01 Javascript
Angular 输入框实现自定义验证功能
2017/02/19 Javascript
jQuery实现表格隔行换色
2018/09/01 jQuery
async/await优雅的错误处理方法总结
2019/01/30 Javascript
Windows上node.js的多版本管理工具用法实例分析
2019/11/06 Javascript
小程序api实现promise封装过程解析
2019/11/21 Javascript
解决谷歌搜索技术文章时打不开网页问题的python脚本
2013/02/10 Python
Python3.5实现的三级菜单功能示例
2019/03/25 Python
win10系统Anaconda和Pycharm的Tensorflow2.0之CPU和GPU版本安装教程
2019/12/03 Python
Python过滤序列元素的方法
2020/07/31 Python
Django中ORM的基本使用教程
2020/12/22 Python
美国在线打印网站:Overnight Prints
2018/10/11 全球购物
党员组织关系介绍信
2014/02/13 职场文书
优秀党支部书记事迹材料
2014/05/29 职场文书
文艺演出策划方案
2014/06/07 职场文书
运动会班级口号
2014/06/09 职场文书
学校志愿者活动总结
2014/06/27 职场文书
先进教育工作者事迹材料
2014/12/23 职场文书
大明湖导游词
2015/02/03 职场文书
护士医德考评自我评价
2015/03/03 职场文书
酒店办公室主任岗位职责
2015/04/01 职场文书
哈姆雷特读书笔记
2015/06/29 职场文书
2016年幼儿园万圣节活动总结
2016/04/05 职场文书
教你怎么用Python操作MySql数据库
2021/05/31 Python
如何利用Python实现n*n螺旋矩阵
2022/01/18 Python
Mysql如何实现不存在则插入,存在则更新
2022/03/25 MySQL
一文搞懂Redis中String数据类型
2022/04/03 Redis
Nginx文件已经存在全局反向代理问题排查记录
2022/07/15 Servers