Node.js – Axios derrière un proxy d’entreprise

Axios est une de mes librairies JavaScript favorites pour faciliter les appels HTTP depuis un programme JavaScript (front ou back).

Axios gère très bien les proxys via les variables d’environnement.

// 'proxy' defines the hostname and port of the proxy server.
// You can also define your proxy using the conventional `http_proxy` and
// `https_proxy` environment variables. If you are using environment variables
// for your proxy configuration, you can also define a `no_proxy` environment
// variable as a comma-separated list of domains that should not be proxied.
// Use `false` to disable proxies, ignoring environment variables.

Mais si comme moi, votre proxy d’entreprise ne gère pas les connexions HTTPS (c’est mal), comment faire ? La solution est de créer une connexion HTTPS à travers un tunnel HTTP.

Pour cela, nous utilisons la librairie tunnel

const axios = require('axios')
const tunnel = require('tunnel')

const agent = tunnel.httpsOverHttp({
  proxy: {
    host: 'proxy.entreprise.com',
    port: 8000,
  },
})

const axiosClient = axios.create({
  httpsAgent: agent,
  proxy: false, // Désactivation de la prise en compte des variables proxy
})

axios.get('http://www.google.com').then(...)

Source : https://janmolak.com/node-js-axios-behind-corporate-proxies-8b17a6f31f9d

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *