0
const headers = new Headers();

headers.set(
  "Authorization",
   "Basic " + base64.encode(username + ":" + password)
);

fetch(url, { method: "GET", headers: headers })
  .then(res => {
    console.log("res", res.statusCode);
  });

res.send("success");

我正在尝试使用 API URL 从 url 获取 jpeg 图像文件。当我尝试保存文件时,出现以下错误:

(node:18636) UnhandledPromiseRejectionWarning: FetchError: invalid json response body at [API url] reason: Unexpected token � in JSON at position 0

使用 Advance Rest Client chrome Web 应用程序显示图像时,该 URL 有效。但是使用上面的代码它在 node.js 中不起作用。有人可以帮我解决这个问题吗?那将不胜感激。

4

1 回答 1

1

您正在使用错误的 res.statusCode,您应该使用 res。status 相反,下面是工作代码。您可以根据需要对其进行修改。

const fetch = require('node-fetch');
    const fs =    require('fs')
    fetch('https://homepages.cae.wisc.edu/~ece533/images/airplane.png')
      .then(res => {
        if(res.status==200) {
          let contentType =res.headers.get('content-type')
          if(contentType=='image/png') {
            let stream  = fs.createWriteStream('./test.png')
             res.body.pipe(stream)
          }
         }
      })

;

于 2019-11-24T08:28:04.447 回答