有没有一种方法可以在R中从httr::POST下载文件?

xwbd5t1u  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(116)

我正在尝试下载一个从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参数的等价物。

qc6wkl3g

qc6wkl3g1#

谢谢你@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("*/*"))

字符串

相关问题