|
|
import { HttpsProxyAgent } from 'https-proxy-agent'
|
|
|
import { getProxyUrl } from '../configs/config.js'
|
|
|
|
|
|
let cachedAgent = null
|
|
|
let cachedProxyUrl = null
|
|
|
|
|
|
export function getNextProxyAgent(targetUrl) {
|
|
|
const proxyUrl = getProxyUrl()
|
|
|
|
|
|
|
|
|
if (!proxyUrl) {
|
|
|
return null
|
|
|
}
|
|
|
|
|
|
|
|
|
if (proxyUrl !== cachedProxyUrl) {
|
|
|
cachedAgent = null
|
|
|
cachedProxyUrl = proxyUrl
|
|
|
}
|
|
|
|
|
|
|
|
|
if (cachedAgent) {
|
|
|
return { agent: cachedAgent, proxy: { url: proxyUrl } }
|
|
|
}
|
|
|
|
|
|
|
|
|
try {
|
|
|
cachedAgent = new HttpsProxyAgent(proxyUrl)
|
|
|
console.log(`使用代理 ${proxyUrl} 请求 ${targetUrl}`)
|
|
|
return { agent: cachedAgent, proxy: { url: proxyUrl } }
|
|
|
} catch (error) {
|
|
|
console.error(`为 ${proxyUrl} 创建代理失败:`, error)
|
|
|
return null
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|