agent-proxy
v1.1.2
Published
node的http请求库的代理工具,支持http、https
Downloads
11
Maintainers
Readme
目录
1. 背景
2. 简介
node的http请求库的代理工具,支持http、https; 一个即用型 http 和 https 代理,用于使用代理,使连接保持活动状态!
具有以下特性:
- http
- https
- TypeScript 编写
- 现代化构建工程
详情请看:
如果您在使用的过程中遇到了问题,或者有好的建议和想法,您都可以通过以下方式联系我,期待与您的交流:
- 给该仓库提交 issues
- 给我 Pull requests
- 邮箱:[email protected]
- 微信:keyanzhe
3. 安装方式
目前,安装方式有以下几种:
通过 npm (或 yarn、pnpm 等包管理器)安装
npm install agent-proxy4. 教程
参考下单,根据你的代理服务器 和 后端服务来决定是使用 HttpProxyAgent 或 HttpsProxyAgent。
| 代理类 | 代理服务器 | 服务器 |
|-------------------|--------|--------|
| HttpProxyAgent | HTTP | HTTP |
| HttpProxyAgent | HTTPS | HTTP |
| HttpsProxyAgent | HTTP | HTTPS |
| HttpsProxyAgent | HTTPS | HTTPS |
import { HttpProxyAgent,HttpsProxyAgent } from 'agent-proxy'选择适合您的使用案例的代理后,您可以对其进行实例化。它与 Node.js 自带的的 http(s) agent 的参数相同,和一个附加选项,即代理的 url
import http from 'node:http'
import { HttpProxyAgent } from 'agent-proxy'
const agent = new HttpProxyAgent({
keepAlive: true,
keepAliveMsecs: 1000,
maxSockets: 256,
maxFreeSockets: 256,
proxy: 'http://localhost:8080'
})
http.get('http://localhost:9200', { agent })
.on('response', console.log)
.end()如果您的代理需要基本身份验证,您可以在 proxy url 中对其进行配置:
import http from 'node:http'
import { HttpProxyAgent } from 'agent-proxy'
const agent = new HttpProxyAgent({
keepAlive: true,
keepAliveMsecs: 1000,
maxSockets: 256,
maxFreeSockets: 256,
proxy: 'http://user:pwd@localhost:8080'
})
http.get('http://localhost:9200', { agent })
.on('response', console.log)
.end()你也可以通过 'proxyConnectOptions' 选项传递仅用于代理 CONNECT 请求的自定义选项。
例如 headers 或 tls.connect() 选项:
import fs from 'node:fs'
import http from 'node:http'
import { HttpProxyAgent } from 'agent-proxy'
const agent = new HttpProxyAgent({
keepAlive: true,
keepAliveMsecs: 1000,
maxSockets: 256,
maxFreeSockets: 256,
proxy: 'https://localhost:8080',
proxyConnectOptions: {
headers: {
'Proxy-Authorization': 'Basic YWxhZGRpbjpvcGVuc2VzYW1l',
},
ca: [ fs.readFileSync('custom-proxy-cert.pem') ]
}
})
http.get('http://localhost:9200', { agent })
.on('response', console.log)
.end()如果你需要创建 HttpProxyAgent 和 HttpsProxyAgent 的实例,并且需要同步管理它们,那你可以使用createProxyAgents() 方法来创建代理
import fs from 'node:fs'
import http from 'node:http'
import { createProxyAgents } from 'agent-proxy'
const {agent,setProxy} = createProxyAgents();
setProxy(proxyUrl);常用的http请求库集成示例
got
got('http://localhost:9200', {
agent: {
http: new HttpProxyAgent({
keepAlive: true,
keepAliveMsecs: 1000,
maxSockets: 256,
maxFreeSockets: 256,
scheduling: 'lifo',
proxy: 'http://localhost:8080'
})
}
})needle
needle('get', 'http://localhost:9200', {
agent: new HttpProxyAgent({
keepAlive: true,
keepAliveMsecs: 1000,
maxSockets: 256,
maxFreeSockets: 256,
scheduling: 'lifo',
proxy: 'http://localhost:8080'
})
})node-fetch
fetch('http://localhost:9200', {
agent: new HttpProxyAgent({
keepAlive: true,
keepAliveMsecs: 1000,
maxSockets: 256,
maxFreeSockets: 256,
scheduling: 'lifo',
proxy: 'http://localhost:8080'
})
})simple-get
sget.concat({
url: `http://${server.address().address}:${server.address().port}`,
agent: new HttpProxyAgent({
keepAlive: true,
keepAliveMsecs: 1000,
maxSockets: 256,
maxFreeSockets: 256,
scheduling: 'lifo',
proxy: `https://${proxy.address().address}:${proxy.address().port}`
})
}, function (err, response, data) {
// handle the response
})详情跳转至教程
5. API接口文档
详情跳转至API接口文档
有您的支持,我会在开源的道路上,越走越远

