Obtuve la URL de una API, cuando visito la URL en el navegador y paso mi inicio de sesión, descargará correctamente un archivo zip que contiene el archivo JSON con los datos que quiero.
¿Cómo obtengo este JSON buscándolo con Node?
Cuando llamo así
const data = await fetch(url, { headers: { Authorization: "Basic " + btoa(username + ":" + password) } });Recibo correctamente un data.body y data.headers pero nada cerca de los datos JSON que estoy buscando.
¿Es posible incluso hacer una llamada API a un archivo adjunto?
Mi solución:
import request from "request"; import zlib from "zlib"; import concat from "concat-stream"; const btoa = (str) => Buffer.from(str).toString("base64"); request(url, { headers: { Authorization: "Basic " + btoa(username + ":" + password), }}) .pipe(zlib.createGunzip()) .pipe( concat((stringBuffer) => { console.log(stringBuffer.toString()) // gives me the json I was looking for }) );