我正在使用axios从Jira Server下载文件,但是,当我将请求类型设置为'stream'时,来自Jira的响应指出我未通过身份验证。删除后,我收到以下答复(摘录):
v�Ģ �����������Tjj1c�N{;;&oo��Pvwf=�������P�V4�_�T�ݡ; �O��|��M\�Oʥ�L/ t%��N���/ |�g9i;��^���N��|1b�Qq��q� ��ڤ�^��$ {o�'����[����vWD�cF\N�����?zw�irer�z#p�f�T�L7�5H�w ��A��,�q�#�����}V�)�+6gO�3�5$�}8"�bm���;��P�.�m?������zo l�v�G)���,�E7id�JN}�[
�r��Z���)�������o��F�ZN��O�FD���/�����G�QяD����mw��
M��0A��_0�&���Jî!�m����Za
�Q����������ƃ�S�����To��3
D�#:��`g�]��| y%Fހs ��D
使用下面的代码:
axios.get('http://localhost:8080/secure/attachmentzip/' + req.body.issue.id + ".zip",
{
auth: {
username: '-',
password: '-'
}
}
)
.then(function (response) {
console.log(response.data)
})
.catch(function (error) {
console.log(error);
})
是否可以根据上述响应创建文件?
[过去处理文件或二进制数据时,使用axios
遇到了多个问题,建议使用request
,request-promise
或got
const request = require('request-promise');
const fs = require('fs').promises;
request.get('http://localhost:8080/secure/attachmentzip/' + req.body.issue.id + ".zip", {
auth: {
username: '-',
password: '-'
},
encoding: null // important to avoid utf8 conversion
}).then(buffer => {
return fs.writeFile('file.zip', buffer); // fs.promises
}).then(() => console.log('saved'))
.catch(console.error)
尽管正在下载文件,但是如果文件很大,最好使用流。
const request = require('request'); // better to use request when using streams
request.get('http://localhost:8080/secure/attachmentzip/' + req.body.issue.id + ".zip", {
auth: {
username: '-',
password: '-'
}
}).pipe(fs.createWriteStream('file.zip'))
注:无法测试该URL,无法为您提供特定于axios的解决方案。