Socket
Book a DemoInstallSign in
Socket

agent-proxy

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

agent-proxy

node的http请求库的代理工具,支持http、https

1.1.2
latest
Source
npmnpm
Version published
Weekly downloads
5
Maintainers
1
Weekly downloads
 
Created
Source

目录

  • 1. 背景
  • 2. 简介
  • 3. 安装方式
  • 4. 教程
  • 5. API接口文档

1. 背景

2. 简介

node的http请求库的代理工具,支持http、https; 一个即用型 http 和 https 代理,用于使用代理,使连接保持活动状态!

具有以下特性:

  • http
  • https
  • TypeScript 编写
  • 现代化构建工程

详情请看:

如果您在使用的过程中遇到了问题,或者有好的建议和想法,您都可以通过以下方式联系我,期待与您的交流:

3. 安装方式

目前,安装方式有以下几种:

通过 npm (或 yarn、pnpm 等包管理器)安装

npm install agent-proxy

4. 教程

参考下单,根据你的代理服务器 和 后端服务来决定是使用 HttpProxyAgentHttpsProxyAgent

代理类代理服务器服务器
HttpProxyAgentHTTPHTTP
HttpProxyAgentHTTPSHTTP
HttpsProxyAgentHTTPHTTPS
HttpsProxyAgentHTTPSHTTPS
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 请求的自定义选项。 例如 headerstls.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接口文档

有您的支持,我会在开源的道路上,越走越远

赞赏码

Keywords

node

FAQs

Package last updated on 14 May 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.