es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo averiguar a dónde redirige una URL en Node JS (sin el módulo de solicitud)?

Lamentablemente, la mayoría de las respuestas/preguntas en Stack Overflow relacionadas con esto utilizan la biblioteca de solicitudes, que está obsoleta. Tengo una URL, por ejemplo, http://bitly.com/3eZyxM1 (que redirige a https://google.com, que luego redirige a https://www.google.com). Dada la primera URL (la de bitly), ¿cómo puedo averiguar el primer lugar al que redirige (no la ubicación final, el primer lugar al que va, que es https://google.com)? Estoy de acuerdo en usar bibliotecas de terceros de npm, siempre y cuando no estén obsoletas. Idealmente, debería funcionar en Node.js 16 o posterior.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para descubrir el primer lugar al que se redirige una URL en Node.js 16 o versiones más recientes, puedes utilizar el método incorporado http.request.

    Aquí tienes un ejemplo de código:

    const http = require('http');
    
    const url = 'http://bitly.com/3eZyxM1';
    
    const req = http.request(url, (res) => {
      console.log('statusCode:', res.statusCode);
      console.log('headers:', res.headers);
    
      // Comprobar si es una redirección
      if (res.statusCode >= 300 && res.statusCode < 400 && res.headers.location) {
        const redirectUrl = res.headers.location;
        console.log('URL de redirección:', redirectUrl);
      }
    
    });
    
    req.on('error', (e) => {
      console.error('Error:', e);
    });
    
    req.end();
    

    Este código envía una solicitud HTTP a la URL proporcionada utilizando el método http.request. Si la respuesta tiene un código de estado entre 300 y 399 e incluye una cabecera Location, eso significa que se trata de una redirección. Luego obtenemos la URL de redirección de la cabecera Location.

    Este código no utiliza ninguna biblioteca obsoleta y debería funcionar con Node.js 16 o versiones más recientes.

Comments are closed.