nodejs使用socket5進行代理請求的實現(xiàn)
需要用到2個庫,
request
socks5-http-client/lib/Agent/
或
socks5-https-client/lib/Agent
因為一些已知原因,有時候,http.request請求無法拿到數(shù)據(jù),
首先想到的是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); });
當(dāng)然,也可以修改代理地址:
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。
到此這篇關(guān)于nodejs使用socket5進行代理請求的實現(xiàn)的文章就介紹到這了,更多相關(guān)nodejs socket5代理請求內(nèi)容請搜素腳本之家以前的文章或下面相關(guān)文章,希望大家以后多多支持腳本之家!
相關(guān)文章
VSCode通過Ctrl+P快速打開node_modules中的文件的操作方法
由于node_modules目錄包含的文件太多,在VSCode中默認情況下是禁止搜索node_modules目錄的,在這種情況下,我們將不得不依次展開node_modules的文件目錄樹,來查找我們所需要的文件,接下來介紹VSCode如何通過Ctrl+P快速打開node_modules中的文件,需要的朋友可以參考下2023-07-07Nodejs進階:基于express+multer的文件上傳實例
本篇文章主要介紹了基于express+multer的文件上傳實例,現(xiàn)在分享給大家,也給大家做個參考,感興趣的小伙伴們可以參考一下。2016-11-11node.js對于數(shù)據(jù)庫MySQL基本操作實例總結(jié)【增刪改查】
這篇文章主要介紹了node.js對于數(shù)據(jù)庫MySQL基本操作,結(jié)合實例形式總結(jié)分析了node.js針對mysql數(shù)據(jù)庫基本配置、連接與增刪改查相關(guān)操作技巧,需要的朋友可以參考下2023-04-04Nest.js中使用HTTP五種數(shù)據(jù)傳輸方式小結(jié)
本文主要介紹了Nest.js中使用HTTP五種數(shù)據(jù)傳輸方式小結(jié),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05Node.js數(shù)據(jù)流Stream之Readable流和Writable流用法
這篇文章介紹了Node.js數(shù)據(jù)流Stream之Readable流和Writable流的用法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-07-07node.js正則表達式獲取網(wǎng)頁中所有鏈接的代碼實例
這篇文章主要介紹了node.js正則表達式獲取網(wǎng)頁中所有鏈接的代碼實例,使用正則表達式實現(xiàn),需要的朋友可以參考下2014-06-06