【问题标题】:R translating curl commands to post multipart form - problemR翻译curl命令以发布多部分形式 - 问题
【发布时间】:2021-06-07 14:55:56
【问题描述】:

我有以下 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 都一无所知。我的翻译基于从示例中学习,如果出现明显的错误,例如命令的内容类型部分,我不会感到惊讶。

谢谢!

【问题讨论】:

    标签: r curl post multipartform-data httr


    【解决方案1】:

    你真的很亲密。这适用于“~/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 =

    【讨论】:

      猜你喜欢
      • 2013-09-12
      • 2017-06-10
      • 1970-01-01
      • 2017-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-04
      • 1970-01-01
      相关资源
      最近更新 更多