【问题标题】:POST request to retrieve pdf in node.js在 node.js 中检索 pdf 的 POST 请求
【发布时间】:2018-06-01 00:48:32
【问题描述】:

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

提前致谢!

【问题讨论】:

    标签: node.js rest pdf


    【解决方案1】:

    根据docs,第三个参数应该是一个代表编码的字符串。 对于 pdf 文件,编码为 'application/pdf'

    所以这应该适合你:fs.writeFileSync("testing.pdf", pdf, 'application/psf');

    【讨论】:

    • 您的意思是“'application/psf'”中的“psf”吗?
    【解决方案2】:

    解决方案 - 我必须在请求选项中设置 encoding: false

    【讨论】:

      【解决方案3】:

      试试

      fs.writeFileSync("testing.pdf", pdf, 'binary');
      

      这里的第三个参数告诉 fs 编写二进制而不是尝试 UTF-8 编码。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-05-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-30
        • 1970-01-01
        • 2021-08-16
        • 1970-01-01
        相关资源
        最近更新 更多