Search code examples
node.jscurlaxiosresolve

CURL --resolve in node.js axios


Example request in plain CURL:

curl https://www.example.com --resolve www.example.com:443:127.0.0.1

Node.js code (missing the "resolve" feature):

const axios = require('axios');
axios({
  method: 'GET',
  url: 'https://www.example.com'
}).then((response) => {
  console.log(response);
}).catch((error) => {
  console.error(error);
});

How can I pass the resolve option to Node.js Axios? I wasn't able to find any relevant information in their readme.

Does it even have such functionality? If not, what NPM package does?


Solution

  • Axios doesn't have this feature built in.

    But you could try passing the host in the headers?

    I've required https for the example to stop ssl issues.

    const axios = require('axios')
    const https = require('https')
    
    const handler = async () => {
        const response = await axios.get('https://www.example.com', {
            headers: { Host: '127.0.0.1:443' },
            httpsAgent: new https.Agent({
                rejectUnauthorized: false,
            }),
        })
    
        console.log(response)
    }
    
    handler()