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

时间:2018-04-03 05:16:18

标签: javascript node.js postman unirest octetstring

尝试使用octet stream保存Unirest client JSON格式响应(包含正常格式的文件数据)时,格式被破坏,用于打开该格式的(适当的)软件无法打开这个保存的文件。收到Data encoding mismatch错误。

通过基于 POSTMAN chrome app的基于nodejs 驱动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 个答案:

答案 0 :(得分:1)

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

以下作品:

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