nodejs使用socket5進(jìn)行代理請求的實(shí)現(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);
});
我有點(diǎn)不理解的地方是:
我使用http.request 的時候,需要自己添加各種headers,來滿足請求不報錯,而request庫卻不用寫任何headers。
到此這篇關(guān)于nodejs使用socket5進(jìn)行代理請求的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)nodejs socket5代理請求內(nèi)容請搜素腳本之家以前的文章或下面相關(guān)文章,希望大家以后多多支持腳本之家!
相關(guān)文章
利用Node.js了解與測量HTTP所花費(fèi)的時間詳解
這篇文章主要給大家介紹了關(guān)于利用Node.js了解與測量HTTP所花費(fèi)的時間的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-09-09
Win7系統(tǒng)中如何安裝高版本的NodeJS(親測有效!)
Node.js是基于Chrome V8引擎的JavaScript運(yùn)行環(huán)境,能夠使JavaScript在服務(wù)器端運(yùn)行,這篇文章主要給大家介紹了關(guān)于Win7系統(tǒng)中如何安裝高版本的NodeJS的相關(guān)資料,需要的朋友可以參考下2023-12-12

