这个示例基于 demo-sdk-dedicated-proxy 的 Node.js 目录整理,适合先验证 axios 代理配置和管理接口调用。
运行前准备
- 安装依赖:
npm i axios http-proxy-agent https-proxy-agent - 设置环境变量:
PRIVATE_HOSTPRIVATE_PORTPRIVATE_USERNAMEPRIVATE_PASSWORD- 可选:
PRIVATE_BASE - 可选:
TARGET_URL
示例代码
const axios = require('axios')
const host = process.env.PRIVATE_HOST || 's1.ip.16yun.cn'
const port = process.env.PRIVATE_PORT || '39010'
const user = process.env.PRIVATE_USERNAME || process.env.PRIVATE_USER
const pass = process.env.PRIVATE_PASSWORD || process.env.PRIVATE_PASS
const target = process.env.TARGET_URL || 'https://httpbin.org/ip'
const base = (process.env.PRIVATE_BASE || 'http://s1.ip.16yun.cn:887').replace(/\/$/, '')
if (!user || !pass) {
throw new Error('缺少 PRIVATE_USERNAME/PRIVATE_PASSWORD')
}
async function main() {
for (const path of ['current-ip', 'switch-ip', 'update']) {
const url = `${base}/simple/${path}?username=${encodeURIComponent(user)}&password=${encodeURIComponent(pass)}`
const resp = await axios.get(url, { timeout: 15000 })
console.log(path, resp.status, resp.data)
}
const resp = await axios.get(target, {
proxy: {
protocol: 'http',
host,
port: parseInt(port, 10),
auth: { username: user, password: pass },
},
timeout: 15000,
})
console.log(resp.status, resp.data)
}
main().catch((error) => {
console.error(error.message)
process.exit(1)
})
适合什么情况
- 你使用 Node.js 脚本或服务接入独享代理
- 你想快速确认 axios 的代理配置
- 你需要一个最小可运行的 JavaScript 示例