我正在尝试为不同的API编写一个包装器API,它将文件名作为输入并下载文件。
原始api是 https://test.com/?filename=abc.pdf
我想为这个上面的API编写一个包装器,但这似乎不起作用,它只打印一些我无法读取但不发送文件的数据。
var options = {
"method": "GET",
"hostname": test.com,
"port": 443,
"path": "/?filename=" +fileName,
"rejectUnauthorized": false,
}
apiHelper.makeRequest(https, options, false, function(responseObject){
if(responseObject.error){
downloadBackupCallback(null, responseObject.error);
}
else{
downloadBackupCallback(responseObject.data, null);
}
})
任何人都可以帮助我。
答案 0 :(得分:0)
听起来你是在逐字逐句地通过API的响应体,而不是设置正确的请求标题。
从浏览器访问包装器脚本时,会产生尝试呈现请求响应的结果,就像它是HTML一样。当这种情况发生在PDF文件中时,它看起来很像垃圾。
确保在发回回复时设置正确的HTTP标头,如果可能,请从正在包装的API提供的标头中获取这些标头。
我建议您至少需要You are 28 years, 1 months, and 27 days old. (10282 days total)
There are 10 months, and 4 days until your next birthday. (310 total)
your birthday is : 1989-02-19
your birthday is : 1989-02-19
your birthday is : 1989-02-19
your birthday is : 1989-02-19
your birthday is : 1989-02-22
和Content-Disposition
。理想情况下,使用基于流的解决方案来传递响应,这样,如果文件特别大,您就不会在本地缓存大量数据。