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 URL模块操作URL相关方法介绍
Mar 03 NodeJs
nodejs创建web服务器之hello world程序
Aug 20 NodeJs
NodeJs读取JSON文件格式化时的注意事项
Sep 25 NodeJs
nodejs基础应用
Feb 03 NodeJs
Nodejs+Socket.io实现通讯实例代码
Feb 13 NodeJs
nodejs利用ajax实现网页无刷新上传图片实例代码
Jun 06 NodeJs
使用npm安装最新版本nodejs
Jan 18 NodeJs
Nodejs处理异常操作示例
Dec 25 NodeJs
Nodejs对postgresql基本操作的封装方法
Feb 20 NodeJs
nodejs nedb 封装库与使用方法示例
Feb 06 NodeJs
Nodejs文件上传、监听上传进度的代码
Mar 27 NodeJs
Nodejs 微信小程序消息推送的实现
Jan 20 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的XML文件解释类应用实例
2014/09/22 PHP
php根据一个给定范围和步进生成数组的方法
2015/06/19 PHP
PHP面向对象之里氏替换原则简单示例
2018/04/08 PHP
关于laravel 数据库迁移中integer类型是无法指定长度的问题
2019/10/09 PHP
KindEditor在php环境下上传图片功能集成的方法示例
2020/07/20 PHP
node.js中RPC(远程过程调用)的实现原理介绍
2014/12/05 Javascript
JavaScript不使用prototype和new实现继承机制
2014/12/29 Javascript
18个非常棒的jQuery代码片段
2015/11/02 Javascript
javascript实现随机生成DIV背景色
2016/06/20 Javascript
js实现兼容PC端和移动端滑块拖动选择数字效果
2017/02/16 Javascript
jquery实现回车键触发事件(实例讲解)
2017/11/21 jQuery
Vue DevTools调试工具的使用
2017/12/05 Javascript
解决vue 格式化银行卡(信用卡)每4位一个符号隔断的问题
2018/09/14 Javascript
解决Can't find variable: SockJS vue项目的问题
2020/09/22 Javascript
Python 列表list使用介绍
2014/11/30 Python
在Python中处理字符串之ljust()方法的使用简介
2015/05/19 Python
详解Python中dict与set的使用
2015/08/10 Python
Python标准库笔记struct模块的使用
2018/02/22 Python
Python爬虫学习之获取指定网页源码
2019/07/30 Python
Django CSRF跨站请求伪造防护过程解析
2019/07/31 Python
Python实现滑动平均(Moving Average)的例子
2019/08/24 Python
Python 实现大整数乘法算法的示例代码
2019/09/17 Python
Python-for循环的内部机制
2020/06/12 Python
解决Pyinstaller打包软件失败的一个坑
2021/03/04 Python
纯CSS3编写的的精美动画进度条(无flash/无图像/无脚本/附源码)
2013/01/07 HTML / CSS
HTML5 body设置全屏背景图片的示例代码
2020/12/08 HTML / CSS
中国最大隐形眼镜网上商城:视客眼镜网
2016/10/30 全球购物
运动会100米解说词
2014/01/23 职场文书
工商管理本科生求职信
2014/07/13 职场文书
刑事辩护授权委托书范本
2014/10/17 职场文书
学校教学工作总结2015
2015/05/19 职场文书
MySQL之高可用集群部署及故障切换实现
2021/04/22 MySQL
mysql配置SSL证书登录的实现
2021/09/04 MySQL
利用Python实现Picgo图床工具
2021/11/23 Python
Vue实现跑马灯样式文字横向滚动
2021/11/23 Vue.js
Netty分布式客户端处理接入事件handle源码解析
2022/03/25 Java/Android