在R中使用httr2使用POST方法上传文件

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

我想在 R 中使用

httr2
发布上传文件(本例中为 png)的请求。

此示例使用被取代的包

upload_file()
httr
(在此 answer 中找到):

library(httr)

media <- tempfile()
png(media, with = 800, height = 600)
plot(cars)
dev.off()

metadata <- tempfile()
writeLines(jsonlite::toJSON(list(title = unbox("My file"))), metadata)

#post
req <- POST("https://httpbin.org/post",
  body = list(
    metadata = upload_file(metadata, type = "application/json; charset=UTF-8"),
    media = upload_file(media, type = "image/png")
  ),
  add_headers("Content-Type" = "multipart/related"),
  verbose()
)

unlink(media)
unlink(metadata)

httr2
doc中,我可以找到这个使用
req_body_json
的示例:

req <- req_gist(token) %>% 
  req_body_json(list(
    description = "This is my cool gist!",
    files = list(test.R = list(content = "print('Hi!')")),
    public = FALSE
  ))
req %>% req_dry_run()

但这会在正文中发送一些文本,我想上传一个文件。

httr:upload_file
中的
httr2
相当于什么?

r post httr httr2
1个回答
0
投票

像往常一样,我应该看看doc

就是这个函数

req_body_file(req, path, type = NULL)
:

req <- request("https://example.com/api") %>% 
  req_body_file(path = "path/to/file.png")
req %>% req_dry_run()
© www.soinside.com 2019 - 2024. All rights reserved.