簡體   English   中英

使用 R 的 httr 包的 POST 請求正文中缺少方括號

[英]Missing square brackets in body of POST request using R's httr package

我正在使用 R 包 httr 發送 POST 請求。 我知道 reqeust 的主體應該是什么樣子,但我無法使用 httr 創建它。 我總是缺少一對方括號(見下文)。

我必須如何修改我的 R 代碼才能獲得所需的結果?

這是 R POST 片段

cells <- c("Dimensions('Time')/Hierarchies('Time')/Elements('ABC')",
      "Dimensions('Currency')/Hierarchies('Currency')/Elements('USD')")
value <- 123

with_verbose(
  httr::POST(
    url = url,
    config = httr::config(ssl_verifypeer = FALSE, ssl_verifyhost = FALSE),
    body = list(Cells = list(`Tuple@odata.bind` = cells), Value = value),
    content_type("application/json"),
    encode = "json",
    set_cookies(...),
    handle = handle
  ) %>% httr::content()
) 

要發送的所需正文:

{
   "Cells":[
   {"Tuple@odata.bind":[
      "Dimensions('Time')/Hierarchies('Time')/Elements('ABC')",
      "Dimensions('Currency')/Hierarchies('Currency')/Elements('USD')"
   ]}
   ],
   "Value":"123"
}

發送的實際正文:

{
   "Cells": ######### Missing bracket here #######
   {"Tuple@odata.bind":[ 
      "Dimensions('Time')/Hierarchies('Time')/Elements('ABC')",
      "Dimensions('Currency')/Hierarchies('Currency')/Elements('USD')"
   ]},
   ####### Missing bracket here #######
   "Value":"123"
}

你快到了,只需向Cells添加另一個級別的列表:

library(magrittr)
library(jsonlite)

cells <- c("Dimensions('Time')/Hierarchies('Time')/Elements('ABC')",
           "Dimensions('Currency')/Hierarchies('Currency')/Elements('USD')")
value <- 123

list(Cells = list(`Tuple@odata.bind` = cells), Value = value) %>%
  toJSON() %>%
  prettify()
#> {
#>     "Cells": {
#>         "Tuple@odata.bind": [
#>             "Dimensions('Time')/Hierarchies('Time')/Elements('ABC')",
#>             "Dimensions('Currency')/Hierarchies('Currency')/Elements('USD')"
#>         ]
#>     },
#>     "Value": [
#>         123
#>     ]
#> }
#> 

list(Cells = list(list(`Tuple@odata.bind` = cells)), Value = value) %>%
  toJSON() %>%
  prettify()
#> {
#>     "Cells": [
#>         {
#>             "Tuple@odata.bind": [
#>                 "Dimensions('Time')/Hierarchies('Time')/Elements('ABC')",
#>                 "Dimensions('Currency')/Hierarchies('Currency')/Elements('USD')"
#>             ]
#>         }
#>     ],
#>     "Value": [
#>         123
#>     ]
#> }
#> 

reprex 包(v0.2.1) 於 2018 年 9 月 23 日創建

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM