如何使用 OpenCPU 通过 HTTP 下载由 rmarkdown 生成的 pdf

How to download pdf generated with rmarkdown via HTTP using OpenCPU

我正在尝试下载我在 R 后端使用 rmarkdown 创建的 pdf,但我不确定如何通过 HTTP 检索它,如果可能的话。我在前端使用 Angular6,我只是使用基本的 GET/POST 方法与我的后端通信。

这里是一些与这个问题相关的代码:

后端代码(R):

EXPORT <- function(results){ library(rmarkdown) library(knitr) rmarkdown::render("genepanel.Rmd", output_format = "pdf_document", params = list(results = results)) }

前端代码(Angular TypeScript):

this.http.post(environment.API + '/R/EXPORT/json', results) .subscribe(result => console.log(result));

我在调用该服务时没有收到任何 HTTP 错误,如果我手动 运行 服务器中的代码,则会生成 pdf。

提前致谢!

您应该在不带 /json 后缀的情况下调用 API。你会看到一个索引生成的资源,pdf 文件应该在那里。

您的客户端应检查 POST 请求到 /R/EXPORTLocation 响应 header,其中将包含 session 的位置,并且您可以从那里获取 pdf。