需要用到2個庫,
request
socks5-http-client/lib/Agent/
或socks5-https-client/lib/Agent
因為一些已知原因,有時候,http.request請求無法拿到數據,
首先想到的是proxy,其次是socket5.
有了以上兩個庫,接下來的代碼超級簡單。
const request = require('request');var httpAgent = require('socks5-http-client/lib/Agent');var httpsAgent = require('socks5-https-client/lib/Agent');var Agent = /^https/.test(url) ? httpsAgent : httpAgent;request({ url: url, strictSSL: false, agentClass: Agent}, function(err, res) { console.log(err||res.body,res.statusCode,res.headers);});當然,也可以修改代理地址:
request({ url: url, strictSSL: false, agentClass: Agent, agentOptions: { socksHost: 'localhost', // Defaults to 'localhost'. socksPort: 1080, // Defaults to 1080. }}, function(err, res) { console.log(err||res.body,res.statusCode,res.headers);});我有點不理解的地方是:
我使用http.request 的時候,需要自己添加各種headers,來滿足請求不報錯,而request庫卻不用寫任何headers。
到此這篇關于nodejs使用socket5進行代理請求的實現的文章就介紹到這了,更多相關nodejs socket5代理請求內容請搜素錯新站長站以前的文章或下面相關文章,希望大家以后多多支持錯新站長站!
新聞熱點
疑難解答
圖片精選