我想将带有zip文件的http PUT请求以二进制形式发送到web api并获取带有http状态代码的响应。
如何读取文件并将其与二进制文件一起使用?
感谢您的帮助!!
答案 0 :(得分:5)
你可以从这开始:
var http = require('http');
var fs = require('fs');
var req = http.request({
hostname : HOSTNAME,
port : PORT,
path : UPLOAD_PATH,
method : 'PUT',
});
fs.createReadStream('somefile.zip').pipe(req);
您可能需要执行其他一些操作,例如正确的错误处理,设置Content-Type
标头等。
答案 1 :(得分:4)
使用request-promise(基于bluebird)
const fs = require('fs');
const request = require('request-promise');
const options = {
method: 'PUT',
url: 'dest url',
qs: {key: 'value'}, // optional
headers: {
'content-type': 'application/octet-stream'
}
};
fs.createReadStream(zipFilePath).pipe(request(options)).then(body =>{
console.log(body);
})
.catch(err => {
console.log(err);
});
答案 2 :(得分:1)
检查answer。
唯一的区别是,您使用.put()
代替.post()
。