如何将作为REST响应接收的八位字节流保存到文件系统?

3

当尝试使用Unirest客户端保存八位字节流JSON格式响应(包含专有格式的文件数据)时,该格式会被破坏,并且用于打开该格式的(专有)软件无法打开此保存的文件。接收到数据编码不匹配错误。

当通过基于nodejs的POSTMAN Chrome应用程序驱动REST调用时,完美地工作

有关此问题的任何提示或线索。

以下是在nodejs中接收八位字节流的代码:

urClient.get(url)
    .header('Authorization', '<token>')
    .header('Content-Type', 'application/json')
    .end(
        function(response) {
            log.info('+++++++++++++++'+response.code);
            //log.info('+++++++++++++++'+response);
            //log.info('+++++++++++++++'+response.body);
            //log.info('+++++++++++++++'+response.keys);
            fs.writeFile(`${destination}\\${fileName}.${fileExtension}`, response.data, function (error) {
                if (error) {
                    response = {
                        "error": error
                    };
                    res.statusCode = 400;
                    res.json(response); }
            });
        });
1个回答

1

需要将数据写入文件,而不是使用流。

以下代码可以正常工作:

fs.writeFile(`response.txt`, response.stream, function (error) {
  if (error) { console.error(error); }
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接