0
我使用request.defaults(..)
- 除其他外 - 爲我的請求設置自定義http代理(設置maxSockets
和keepAlive
)。Node.js - 請求:指定自定義代理,可以處理http和https
const agent = new http.Agent({
keepAlive: true,
maxSockets: 42
})
const requestWithCustomAgent = request.defaults({
agent,
json: true,
headers: {
'User-Agent': 'amazing agent'
}
})
當訪問與方案中的URL https
這個錯誤與Error: Protocol "https:" not supported. Expected "http:"
。反之亦然https.Agent
和計劃http
。
有什麼辦法可以「告訴」請求處理與一個代理http
請求和https
與另一個?
一個可以投資一些麒麟血,做黑暗魔法,如:
if(url.startsWith('https') {/* use on agent */} else { /* use the other */}
但是,這感覺hack'ish。
是一樣的東西:
const requestWithCustomAgent = request.defaults({
agents: {
'http': httpAgent,
'https': httpsAgent
},
json: true,
headers: {
'User-Agent': 'amazing agent'
}
})
可能嗎?
幫助表示讚賞;)
聽起來更像是OP是什麼尋找 – James
不錯,所以限制(如maxSockets等)將適用於「每個方案」的基礎上?並且例如http代理只會忽略「cert」,「key」等選項。 –
@FlorianBarth正確。 – robertklep