【问题标题】:How to provide a Map() via httr如何通过 httr 提供 Map()
【发布时间】:2020-02-27 20:08:19
【问题描述】:

我有一个 api,它要求它的主体之一是地图,例如

{
  "functionName": "",
  "parameters": "Map[string,?]"
}

如何使用 R 库 httr 执行此操作?我的建议是按照

的行提供一个嵌套列表
httr::POST(..., body = list("functionName" = "copy", "parameters" = list(a = 1, b = 2)))

这会传递一个错误消息“curl::handle_setform(handle, .list = req$fields) 中的错误: 表单字段“参数”的值类型不受支持。”

我不知道如何构造一个对象,否则会被接受。

对于这个问题没有代表表示歉意,API 是私有的,但希望我的问题足够简单,有人可以找到正确的语法。

【问题讨论】:

  • 此 API 的文档侧重于哪种语言?有更多细节可以分享吗?

标签: r httr


【解决方案1】:

我发现了解决这个问题的方法,就是使用jsonlist::toJSON() 来构造主体。例如

body = jsonlite::toJSON(
    list(
      "functionName" = "Rename",
      "parameters" = (list(object = "pathtofile", 
                           newName = "myfile",
                           newExtension = ".csv")
      )), 
     auto_unbox = TRUE
)

这会以预期的格式构造一个 json 对象,我认为 httr 自己无法做到这一点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-20
    • 2019-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-25
    • 2016-11-19
    • 1970-01-01
    相关资源
    最近更新 更多