有没有办法在R中从httr::POST下载文件?

问题描述 投票:0回答:1

我正在尝试下载从 HTTP POST 调用返回的文件(到我无法控制的 API)。

我有以下curl命令,它可以执行我想要执行的操作,在请求中提交自定义json有效负载并将文件下载到foo.pdf。

curl -X 'POST' \
  'http://localhost/requestDownloadFile' \
  -H 'accept: */*' \
  -H 'Content-Type: application/json' \
  -d '{APPLICATION_JSON_REQUEST_PAYLOAD}
  --output foo.pdf'

所以在 R 中我已经成功地让它工作了

system2("curl", "-X 'POST' 'http://localhost/requestDownloadFile' -H 'accept: */*' -H 'Content-Type: application/json' -d '{APPLICATION_JSON_REQUEST_PAYLOAD}' --output foo.pdf")

但是我添加的其余代码使用

httr::POST
进行非文件下载,看起来更干净一些。

我的问题是,我可以使用

httr::POST
函数实现相同的目标吗?我没有得到返回给我的文件内容,所以我需要以某种方式传递与curl的
output
参数相当的内容。

r httr
1个回答
0
投票

谢谢@r2evans,这正是我正在寻找的。

为了在我原来的问题的背景下回答我的问题,这对我有用:

postResponse <- httr::POST(http://localhost/requestDownloadFile, httr::write_disk("foo.pdf", overwrite=TRUE), body = '{APPLICATION_JSON_REQUEST_PAYLOAD}',httr::content_type_json(), httr::accept("*/*"))
© www.soinside.com 2019 - 2024. All rights reserved.