笔记记录:NodeJS使用代理发送请求代码

96 阅读1分钟
npm install https-proxy-agent
npm install axios

const axios = require('axios')
// https-proxy-agent 6.0.0 及以上版本
const { HttpsProxyAgent } = require('https-proxy-agent')
// https-proxy-agent 6.0.0 以下版本
// const HttpsProxyAgent = require("https-proxy-agent")

async funcHandle () {
    const headers = {
      Connection: 'keep-alive',
      Pragma: 'no-cache',
      'Cache-Control': 'no-cache',
      'Upgrade-Insecure-Requests': '1',
      'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_3 like Mac OS X) AppleWebKit/601.1 (KHTML, like Gecko) BaiduBoxApp/12.5.0 Mobile/13G34 Safari/601.1.46 SP-engine/2.26.0',
      Accept: 'application/json, text/javascript, */*; q=0.01',
      'Sec-Fetch-Site': 'none',
      'Sec-Fetch-Mode': 'navigate',
      'Sec-Fetch-User': '?1',
      'Sec-Fetch-Dest': 'document',
      'Accept-Language': 'zh-CN,zh;q=0.9'
    }

    try {
      // 代理ip和代理端口
      let proxyIp = '183.xxx.xxx.xxx'
      let proxyPort = '65500'
      // 配置用户名和密码
      let username = 'xxxxxx'
      let password = 'xxxxxx'
      const proxy = `http://${username}:${password}@${proxyIp}:${proxyPort}`

      const response = await axios({
        url: 'https://www.xxxx.com',
        method: 'GET',
        headers,
        httpAgent: new HttpsProxyAgent(proxy),
        httpsAgent: new HttpsProxyAgent(proxy)
      })

      if (response.status === 200) {
        console.log(response)
      } else {
        console.error('Failed to get cookies. Status code:', response.status)
      }
    } catch (error) {
      console.error('Error:', error.message)
    }

    return null
  }