401 文件下载尝试使用 Node-Wget
401 File Download Attempt With Node-Wget
正在尝试使用 Node-Wget 下载文件:
wget ({
url: 'https://localhost...',
dest: './test_artifacts/logs/',
timeout: 2000
}, function (error, response, body) {
if (error) {
console.log('--- error:');
console.log(error); // error encountered
} else {
console.log('--- headers:');
console.log(response.headers); // response headers
console.log('--- body:');
console.log(body); // content of package
}
}
);
另外,使用 PhantomJS、Selenium Webdriver 和 Cucumber。
上面的代码在文件公开可用时有效,但当我在我的网站上使用它时,我得到:
Status Code: 401; Unauthorized
该站点使用登录页面来验证用户。我想这就是阻止我下载文件的原因。不过,在测试步骤的这个阶段,Selenium 已经登录并浏览了站点。这让我相信 Wget 需要传递一些东西来确定用户已经登录。问题是,node-wget 的文档非常小,我在文档中没有看到提供解决方案的命令。
Link 到正在使用的包:
https://www.npmjs.com/package/node-wget
切换到 npm 'request'。工作良好。允许自定义 http header 字段,例如:
headers: {
Authorization: 'Bearer esdfsdf...'
}
};
正在尝试使用 Node-Wget 下载文件:
wget ({
url: 'https://localhost...',
dest: './test_artifacts/logs/',
timeout: 2000
}, function (error, response, body) {
if (error) {
console.log('--- error:');
console.log(error); // error encountered
} else {
console.log('--- headers:');
console.log(response.headers); // response headers
console.log('--- body:');
console.log(body); // content of package
}
}
);
另外,使用 PhantomJS、Selenium Webdriver 和 Cucumber。 上面的代码在文件公开可用时有效,但当我在我的网站上使用它时,我得到:
Status Code: 401; Unauthorized
该站点使用登录页面来验证用户。我想这就是阻止我下载文件的原因。不过,在测试步骤的这个阶段,Selenium 已经登录并浏览了站点。这让我相信 Wget 需要传递一些东西来确定用户已经登录。问题是,node-wget 的文档非常小,我在文档中没有看到提供解决方案的命令。
Link 到正在使用的包: https://www.npmjs.com/package/node-wget
切换到 npm 'request'。工作良好。允许自定义 http header 字段,例如:
headers: {
Authorization: 'Bearer esdfsdf...'
}
};