来自httr包的API调用中的正文

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

我想通过API和httr包调用我的飞利浦Hue灯。然而问题是我无法让body正确。我确信API有效,因为GET调用工作正常。

例如,在PUT调用打开和关闭灯的身体应该看起来像{"on":false}。这个电话看起来像PUT(url = url), body = body1)

但是,我无法在httr包中的body部分中使用它。我已经尝试过:body1 <- '{on:"false"}'返回:"{on:\"false\"}"body2 <- list(on = "false")返回$on [1] "false"body3 <- toJSON(body2)返回{"on":["false"]}

正如您所看到的,上述选项都没有完全符合要求,并且它们都会产生额外的标点符号。知道我怎么能在身体中得到正确的{"on":false}

不幸的是,我无法为您提供可重复的示例,因为没有可用的公共沙箱环境,我不希望每个人都控制我的灯;-)但是文档可以找到here

r httr
1个回答
3
投票

如果您使用toJSON包中的jsonlite,那么您可以这样做

library(jsonlite)
PUT("https://url", body=toJSON(list(on = unbox(FALSE))))

unbox()将阻止R向量包含在JSON数组的括号中。

© www.soinside.com 2019 - 2024. All rights reserved.