用户登录
用户注册

分享至

nodejs使用socket5进行代理请求的实现

  • 作者: 用户17801880
  • 来源: 51数据库
  • 2021-08-30

需要用到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代理请求内容请搜素以前的文章或下面相关文章,希望大家以后多多支持!

软件
前端设计
程序设计
Java相关