我正在发出POST请求来检索pdf。如果我在邮递员中这样做,请求工作正常,但是如果我使用request
包通过node.js执行它,我会得到一个空的pdf。这是我使用request
包的请求:
let body = {
attr1: "attr1",
attr2: "attr2"
}
let opts = {
url: "some_url",
method: "post",
headers: {
"Content-Type": "application/x-www-form-urlencoded",
},
body
}
request(requestOpts).then(pdf => {
console.log(pdf) // prints out the binary version of the pdf file
fs.writeFileSync("testing.pdf", pdf);
});
当我使用postman时,我使用完全相同的请求参数,但它返回带有正确内容的pdf。
有人可以帮忙吗?或者我保存PDF文件的方式不正确?
提前致谢!
答案 0 :(得分:1)
解决方案 - 我必须在请求选项中设置encoding: false
。
答案 1 :(得分:0)
尝试
fs.writeFileSync("testing.pdf", pdf, 'binary');
这里的第三个参数告诉fs写二进制而不是尝试UTF-8编码。
答案 2 :(得分:-1)
根据docs,第三个参数应该是代表编码的字符串。 对于pdf文件,编码为“ application / pdf”
所以这应该对您有用:fs.writeFileSync("testing.pdf", pdf, 'application/psf');