这里主要介绍两种方案
request
使用方法:
// ----------------------------request----------------------------
const request = require('request');
var options = {
'method': 'GET',
'url': 'http://myip.ipip.net/',
'proxy': '你的代理url', // 格式为:http://username:password@hotname:port
'headers': {
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
'Cache-Control': 'no-cache',
'Connection': 'keep-alive',
'Pragma': 'no-cache',
'Upgrade-Insecure-Requests': '1',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.102 Safari/537.36 Edg/104.0.1293.70'
}
};
request(options, function (error, response) {
if (error) {
console.log(error)
} else {
console.log(response.body)
}
});
或者在导入request库是设置默认代理和认证
const request = require('request').defaults({
proxy: JSON.parse(req.query.proxy)['https'],
rejectunauthorized: false
});
参考文档:
注意:
request库目前已经被作者弃用了,意味着它不会再有新功能更新和问题修复,所以发掘新的库使用是必要的
axios
axios是目前可以平替request的另一个库,作者目前依然持续更新,更重要的是有友好的中文文档
使用方法:
var axios = require('axios');
var config = {
method: 'get',
url: 'http://myip.ipip.net/',
proxy: {
protocol: 'http', // http还是https取决于你的代理
host: "代理的域名地址",
port: "代理的端口号",
auth: {
username: "代理的用户名",
password: "代理的密码",
}
},
headers: {
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
'Cache-Control': 'no-cache',
'Connection': 'keep-alive',
'Pragma': 'no-cache',
'Upgrade-Insecure-Requests': '1',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.102 Safari/537.36 Edg/104.0.1293.70'
}
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
参考文档: