POST请求以在node.js中检索pdf

时间:2017-12-18 16:25:01

标签: node.js rest pdf

我正在发出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文件的方式不正确?

提前致谢!

3 个答案:

答案 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');