3

在尝试保存octet stream使用该格式接收到的 JSON 格式响应(包含专有格式的文件数据)时,Unirest client该格式已损坏,并且用于打开该格式的(专有)软件无法打开此保存的文件。Data encoding mismatch收到错误。

当 REST 调用通过基于 nodejs 的POSTMAN chrome 应用程序驱动时,同样可以正常工作。

任何线索或导致这一点。

以下是用于在 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); }
            });
        });
4

1 回答 1

1

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

以下作品:

fs.writeFile(`response.txt`, response.stream, function (error) {
  if (error) { console.error(error); }
});
于 2018-05-09T06:17:21.977 回答