有什么方法可以使用缓冲区数组和内容类型以及put方法写入文件?
requestify.request('some url', {
method: 'PUT',
body: buffArray, //need modifications here
headers: {
'Content-Type': res_file.headers['content-type']
}
}).then(function (res) {
console.log(res);
})
我可以发送数据,但文件无法以正确的方式存储。
有效的Java代码
httpcon.setRequestMethod("PUT");
httpcon.setReadTimeout(100000);
httpcon.setDoOutput(true);
httpcon.setRequestProperty("Content-Type", conenttype);
httpcon.connect();
OutputStream os = httpcon.getOutputStream();
os.write(in.toByteArray(), 0, in.size());
responceCode = httpcon.getResponseCode();
httpcon.disconnect();
答案 0 :(得分:0)
我个人的建议是使用Node.JS内置的http
或https
包。
为什么?因为您要编写和读取可能足够大的二进制文件,从而给您带来问题,并且对于我用requestify
测试的文件,使用二进制响应时,它会给您带来问题(它将它们字符串化!)。
您可以简单地使用流媒体,这将为您节省很多麻烦。
您可以使用它进行测试,例如:
const fs = require('fs');
const http = require('https');
const req = http.request({
host: 'raw.githubusercontent.com',
path: '/smooth-code/svgr/master/resources/svgr-logo.png',
method: 'GET'
}, res => {
res.pipe(fs.createWriteStream('test.png'));
});
req.end();
并适应您提供的代码:
const fs = require('fs');
const http = require('https');
const req = http.request({
host: 'some-host',
path: '/some/path',
method: 'PUT',
headers: {
'Content-Type': res_file.headers['content-type']
}
}, res => {
res.pipe(fs.createWriteStream('your-output-file.blob'));
});
// This part: If comes from HDD or from another request, I would recommend using .pipe also
req.write(buffArray);
req.end();
更多信息: