nodejs使用socket5进行代理请求的实现
作者:jsoncode 时间:2024-05-09 14:49:44
需要用到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。
来源:https://segmentfault.com/a/1190000021796119
标签:node,socket5,代理请求
0
投稿
猜你喜欢
MySQL中的多字段相同数据去重复
2024-01-17 11:21:21
Android中Okhttp3实现上传多张图片同时传递参数
2024-05-10 14:06:20
Python实现统计文章阅读量的方法详解
2023-11-02 23:28:46
Python 中Operator模块的使用
2021-04-02 05:30:34
微信小程序实现横向滚动导航栏效果
2024-04-29 13:55:49
Nginx+Uwsgi+Django 项目部署到服务器的思路详解
2021-05-20 20:23:10
Python3+pycuda实现执行简单GPU计算任务
2022-06-04 09:55:29
Vue的生命周期一起来看看
2024-05-02 17:03:21
Python 实现键盘鼠标按键模拟
2021-11-30 11:00:26
如何将 awk 脚本移植到 Python
2022-02-28 05:40:52
Python使用matplotlib绘制三维图形示例
2022-09-14 10:53:14
Django启动时找不到mysqlclient问题解决方案
2024-01-17 15:55:29
Python 解决相对路径问题:"No such file or directory"
2022-03-16 21:45:05
教你Pycharm安装使用requests第三方库的详细教程
2023-02-24 16:40:01
基于bootstrop常用类总结(推荐)
2024-04-17 09:52:42
MySQL数据库中对前端和后台进行系统优化
2009-01-04 13:39:00
MySQL Cluster集群的初级部署教程
2024-01-22 01:50:16
mysql 导出CSV文件 并带表头的方法
2024-01-21 20:40:35
Python中的列表及其操作方法
2022-05-24 06:19:41
年底了,你的mysql密码安全吗
2024-01-12 23:50:00