首页 > 解决方案 > 使用 fetch 方法读取 RapidAPI PNG 响应

问题描述

你好

我正在努力从 API 取回图像,并且一直在尝试如何正确读取响应并取回 PNG。我在NODE.JS环境中的 repl.it 上执行此操作。

我得到了这个(这是听者,如果需要,我将完全上传回复):

在此处输入图像描述

代码就是这样,我一直在尝试解码 gzip 编码的 PNG 或读取它,但我找不到这样做的方法。

怎么做才能使这个 blob 成为工作 .png 并打开它?

const fetch = require('node-fetch');

fetch("https://unitag-qr-code-generation.p.rapidapi.com/api?data=%7B%22TYPE%22%3A%22text%22%2C%22DATA%22%3A%7B%22TEXT%22%3A%22Hello%20World!%22%7D%7D&setting=%7B%22LAYOUT%22%3A%7B%22COLORBG%22%3A%22ffffff%22%2C%22GRADIENT_TYPE%22%3A%22NO_GR%22%2C%22COLOR1%22%3A%22000000%22%7D%2C%22EYES%22%3A%7B%22EYE_TYPE%22%3A%22Simple%22%7D%2C%22E%22%3A%22M%22%2C%22BODY_TYPE%22%3A0%7D", {
    "method": "GET",
    "headers": {

        "x-rapidapi-host": "unitag-qr-code-generation.p.rapidapi.com",
        "x-rapidapi-key": "my key"
    }
})
.then(response => {
    console.log(response.headers)
})
.then(response => {
  return response.blob();
})

谢谢大家。

标签: javascriptnode.jsapifetchresponse

解决方案


根据文档,如果您要添加compress: true到 fetch 选项。“支持 gzip/deflate 内容编码。false 禁用”

fetch('url', {
    method: 'GET',
    headers: {
        'x-rapidapi-host': 'unitag-qr-code-generation.p.rapidapi.com',
        'x-rapidapi-key': 'my key',
    },
    compress: true
})
``

推荐阅读