2017-12-15 13 views
0

API 및 httr 패키지를 통해 R의 필립스 색조 조명을 호출하고 싶습니다. 그러나 문제는 내가 body 권리를 얻을 수 없다는 것입니다. GET 호출이 정상적으로 작동하기 때문에 API가 작동한다고 확신합니다.httr 패키지의 API 호출 몸체

예를 들어 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을 찾을 수 있습니다. 당신이 jsonlite 패키지에서 toJSON를 사용하는 경우

답변

2

, 당신은

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

unbox()는 JSON 배열의 괄호에 싸여되는 것을 R 벡터를 방지 할 수 할 수 있습니다.

+0

감사합니다. 이것은'[]'을 제거하는 데 도움이되지만 여전히'false' 주위에'' "을 가지고 있습니다. – jeroen81

+0

@ jeroen81 죄송합니다. 그 부분을 놓쳤습니다. 코드를 업데이트했습니다. 적절한 R 부울 값을 사용하십시오. – MrFlick