如何使用 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/EXPORT
的 Location
响应 header,其中将包含 session 的位置,并且您可以从那里获取 pdf。
我正在尝试下载我在 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/EXPORT
的 Location
响应 header,其中将包含 session 的位置,并且您可以从那里获取 pdf。