R 将 curl 命令转换为 post 多部分形式 - 问题

R translating curl commands to post multipart form - problem

我有以下 curl 命令,当从命令行 运行 时,它可以完美运行:

curl -X POST -u "myusername|myemail@domain.com:myPassword"
     -H "Content-Type: multipart/form-data"
     --form file=@MyFileForUploading.csv
     https://mysite-data.herokuapp.com/api/mymarket/setups/uploads

[抱歉:这不是一个有效的示例,因为我无法提供真实的 url 和凭据。我希望你能帮助我从 curl 到 httr 的翻译,而无需 运行 你自己举个例子。]

我尝试将以上内容翻译成 R 的 httr 语言,但没有成功:

library(httr)
POST("https://mysite-data.herokuapp.com/api/mymarket/setups/uploads",
     config = authenticate("myusername|myemail@domain.com", "myPassword"),
     body = upload_file("MyFileForUploading.csv", type = "text/csv"),
     encode = "multipart")

curl 命令用于上传一个 csv 文件,用作基于 Web 的交易界面的设置。设置包括交易者初始持有的对象、交易者权限(买卖)等。所有这些都简单地存储为 csv 文件(列 = 设置参数;行 = 交易者)。

谁能看出明显的错误翻译?我对 curl 和 httr 都一无所知。我的翻译基于从示例中学习,如果有明显的错误,例如命令的内容类型部分,我不会感到惊讶。

谢谢!

你真的很接近。这适用于“~/Renviron”中的环境值设置:

library("httr")

post_url <- Sys.getenv("POST_URL")
username <- Sys.getenv("USERNAME")
password <- Sys.getenv("PASSWORD")
csv_file <- Sys.getenv("CSV_FILE")

POST(
  url = post_url,
  config = authenticate(username, password),
  body = list(file = upload_file(csv_file)),
  encode = "multipart",
  verbose()
) -> response

密钥是您在 CURL 命令中使用的 file =