[英]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.