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 npm install全局安装和本地安装的区别
Jun 05 NodeJs
详谈nodejs异步编程
Dec 04 NodeJs
Nodejs多站点切换Htpps协议详解及简单实例
Feb 23 NodeJs
Ajax异步文件上传与NodeJS express服务端处理
Apr 01 NodeJs
详解使用nodeJs安装Vue-cli
May 17 NodeJs
Nodejs中Express 常用中间件 body-parser 实现解析
May 22 NodeJs
NodeJS实现微信公众号关注后自动回复功能
May 31 NodeJs
nodejs 子进程正确的打开方式
Jul 03 NodeJs
Nodejs 和Session 原理及实战技巧小结
Aug 25 NodeJs
NodeJS收发GET和POST请求的示例代码
Aug 25 NodeJs
详解nodejs中express搭建权限管理系统
Sep 15 NodeJs
搭建一个nodejs脚手架的方法步骤
Jun 28 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
PHP4和PHP5共存于一系统
2006/11/17 PHP
TP5(thinkPHP5)框架基于ajax与后台数据交互操作简单示例
2018/09/03 PHP
Laravel框架Auth用户认证操作实例分析
2019/09/29 PHP
用JavaScript对JSON进行模式匹配 (Part 2 - 实现)
2010/07/17 Javascript
JS小功能(button选择颜色)简单实例
2013/11/29 Javascript
使用JavaScript实现网页版Pongo设计思路及源代码分享
2014/06/16 Javascript
jquery中push()的用法(数组添加元素)
2014/11/25 Javascript
Javascript中的五种数据类型详解
2014/12/26 Javascript
JavaScript实现常用二级省市级联下拉列表的方法
2015/03/25 Javascript
深入解析Backbone.js框架的依赖库Underscore.js的作用
2016/05/07 Javascript
JavaScript中最容易混淆的作用域、提升、闭包知识详解(推荐)
2016/09/05 Javascript
Angularjs通过指令监听ng-repeat渲染完成后执行脚本的方法
2016/12/31 Javascript
nodejs中sleep功能实现暂停几秒的方法
2017/07/12 NodeJs
bmob js-sdk 在vue中的使用教程
2018/01/21 Javascript
JavaScript实现计算多边形质心的方法示例
2018/01/31 Javascript
解决vue-cli项目打包出现空白页和路径错误的问题
2018/09/04 Javascript
Vue文件配置全局变量的实例
2018/09/06 Javascript
react 国际化的实现代码示例
2018/09/14 Javascript
Vue2.x Todo之自定义指令实现自动聚焦的方法
2019/01/08 Javascript
解决Layui中templet中a的onclick参数传递的问题
2019/09/20 Javascript
js实现简单的随机点名器
2020/09/17 Javascript
[47:53]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#2COL VS Spirit
2016/03/02 DOTA
Python socket网络编程TCP/IP服务器与客户端通信
2017/01/05 Python
利用python将json数据转换为csv格式的方法
2018/03/22 Python
python批量从es取数据的方法(文档数超过10000)
2018/12/27 Python
python对于requests的封装方法详解
2019/01/03 Python
Python3.4解释器用法简单示例
2019/03/22 Python
python使用opencv实现马赛克效果示例
2019/09/28 Python
Python cookie的保存与读取、SSL讲解
2020/02/17 Python
Python执行时间的几种计算方法
2020/07/31 Python
Python 如何查找特定类型文件
2020/08/17 Python
EJB需直接实现它的业务接口或Home接口吗,请简述理由
2016/11/23 面试题
铁路个人事迹材料
2014/01/30 职场文书
消防宣传语大全
2015/07/13 职场文书
诗词赏析-(浣溪沙)
2019/08/13 职场文书