Nodejs中使用代理访问

这里主要介绍两种方案

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
});

参考文档:

nodejs模块request的官方文档-英文

nodejs模块request的官方文档-中文

nodejs中request库使用HTTPS代理

注意:

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);
});

参考文档:

起步 | Axios Docs (axios-http.com)

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要配置代理服务器,你需要使用Node.js的testproxy.js文件。在这个文件,你需要设置目标页面的URL和代理服务器的信息。你可以使用axios库来发送HTTP请求并配置代理参数。在testproxy.js文件,你可以像下面这样设置代理服务器信息: ```javascript const axios = require('axios'); // 要访问的目标页面 var targetUrl = "https://www.example.com"; // 配置代理服务器信息 var proxy = { host: "proxy.server.com", // 代理服务器地址 port: 8080, // 端口 auth: { // auth认证信息,如果需要认证的话 username: 'username', password: 'password' } }; // 发送HTTP请求并配置代理 axios.get(targetUrl, { proxy: proxy }) .then((response) => { console.log(response.data); }) .catch((error) => { console.log(error); }); ``` 在上述代码,你需要将targetUrl替换为你要访问的目标页面的URL。然后,配置proxy对象的host和port属性为代理服务器的地址和端口。如果代理服务器需要认证,你需要在auth对象提供认证信息。最后,使用axios库的get方法发送HTTP请求,并在config对象配置proxy参数为proxy对象。这样,你就可以在Node.js配置代理服务器了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [NodeJs配置代理服务器](https://blog.csdn.net/zmyzmy1111/article/details/70550020)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [NodeJS配置请求代理服务器](https://blog.csdn.net/z591102/article/details/108316459)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值