使用 httr::POST 的多重查询

问题描述 投票:0回答:0

大家早上好,

我是 R 的新手,我正在尝试从 httr::POST 函数中获取几个。下面我发代码:

`token <- "FC9439DCA5A64714XXXXXXXXXXXXX"
url <- "https://redcap.fmrp.usp.br/api/"
formData <- list("token"=token,
    content='surveyLink',
    format='xml',
    instrument= "qualidade_de_vida_cervical",
    event= "baseline_arm_1",
    record= "1",
    returnFormat='xml'
)
response <- httr::POST(url, body = formData, encode = "form")
result <- httr::content(response)
result <- minimal_html(result) %>% html_elements("body") %>% html_text2()
return(result)`

如果我一次执行一个请求,代码工作正常。但是,我需要几个 ID 才能获取链接。

当我尝试替换“instrument”、“event”和“record”的值以尝试执行循环或类似应用的函数时,我收到一条错误消息。

我试过的代码:

 my_list <- c("949_1","949_2")
    
    for (i in my_list){
    token <- "FC9439DCA5A64XXXXXXXXXXXXXXXX"
    url <- "https://redcap.fmrp.usp.br/api/"
    formData <- list("token"=token,
        content='surveyLink',
        format='xml',
        instrument= "qualidade_de_vida_cervical",
        event= "baseline_arm_1",
        record= my_list,
        returnFormat='xml'
    )
    response <- httr::POST(url, body = formData, encode = "form")
    result <- httr::content(response)
    result <- minimal_html(result) %>% html_elements("body") %>% html_text2()
    return(result) 
    }

我得到的错误:

“vapply(元素,编码,字符(1))错误: 值的长度必须为 1, 但是 FUN(X[[6]]) 结果是长度 2"

The traceback to error is as follow:
6. vapply(elements, encode, character(1))
5. compose_query(body)
4. body_raw(compose_query(body), "application/x-www-form-urlencoded")
3. body_config(body, match.arg(encode))
2. request_build("POST", hu$url, body_config(body, match.arg(encode)), 
as.request(config), ...)
1. httr::POST(url, body = formData, encode = "form")

我的问题是,是否可以使用迭代函数检索一批链接?

非常感谢,

加布里埃尔·波科尔尼

r post httr
© www.soinside.com 2019 - 2024. All rights reserved.