Javascript 如何从unirest响应获取.tar.gz存档?
我开发了一个工具,使用onlinefontconverter.com API将ttf字体转换为其他格式。因此,我在获取propper tar.gz归档文件时遇到了问题。我得到了这个文件,但操作系统告诉我档案被破坏了。那个么如何从响应体保存文件呢?以下是我使用的代码:Javascript 如何从unirest响应获取.tar.gz存档?,javascript,node.js,unirest,Javascript,Node.js,Unirest,我开发了一个工具,使用onlinefontconverter.com API将ttf字体转换为其他格式。因此,我在获取propper tar.gz归档文件时遇到了问题。我得到了这个文件,但操作系统告诉我档案被破坏了。那个么如何从响应体保存文件呢?以下是我使用的代码: 'use strict'; const unirest = require('unirest'); const fs = require('fs'); const file = fs.createWriteStream('./onl
'use strict';
const unirest = require('unirest');
const fs = require('fs');
const file = fs.createWriteStream('./onlinefontconverter.com.tar.gz');
unirest.post("https://ofc.p.mashape.com/directConvert/")
.header("X-Mashape-Key", "key")
.attach("file", fs.createReadStream('./Roboto-Thin.ttf'))
.field("format", "svg")
.end((result) => {
file.write(result.body, {encoding:'binary'});
});
以下是标题:
{“接受范围”:“字节”,
“访问控制允许标头”:“X-Mashape-Key”,
“访问控制允许方法”:“POST,选项”,
“访问控制允许来源”:“*”,
“访问控制公开标头”:“内容处置”,
“缓存控制”:“公共,最大年龄=0”,
“内容处置”:“附件;文件名=“onlinefontconverter.com.tar.gz”,
“内容类型”:“应用程序/八位字节流”,
日期:“2017年1月2日星期一18:52:34 GMT”,
过期日期:“0”,
“上次修改”:“2017年1月2日星期一18:52:34 GMT”,
pragma:'无缓存',
服务器:“Mashape/5.0.6”,
通过:“1.1维格尔”,
“内容长度”:“119251”,
连接:'Close'}
我认为这是unirest
库中响应编码错误的问题。尝试以下操作(并隐藏您的密钥):
谢谢我自己弄明白了。我的代码在第一个帖子里。
'use strict';
const fs = require('fs');
const request = require('request');
const formData = {
format: 'svg',
file: fs.createReadStream('./Roboto-Thin.ttf')
}
var buff = [];
request.post({ url: "https://ofc.p.mashape.com/directConvert/",
formData: formData,
headers: {
"X-Mashape-Key": "SecretMashapeKey"
}
})
.on('data', function(chunk) {
buff.push(chunk);
})
.on('end', function() {
var data = Buffer.concat( buff );
fs.writeFileSync( 'onlinefontconverter.com.tar.gz',
data,
'binary' );
});