Эквивалентность параметра -d в curl в пакете httr R

Я следую официальному руководству opencpu Пакет в R. В главе 4.3 Вызов функции Он использует curl протестировать API:

curl http://your.server.com/ocpu/library/stats/R/rnorm -d "n=10&mean=100"

и пример вывода:

/ocpu/tmp/x032a8fee/R/.val
/ocpu/tmp/x032a8fee/stdout
/ocpu/tmp/x032a8fee/source
/ocpu/tmp/x032a8fee/console
/ocpu/tmp/x032a8fee/info

я могу использовать curl чтобы получить аналогичный результат, но когда я пытаюсь отправить этот HTTP-запрос с помощью httr пакет в R, я не знаю, как повторить результат. Вот что я попробовал:

resp <- POST(
  url = "localhost/ocpu/library/stats/R/rnorm",
  body= "n=10&mean=100"
)
resp

выход:

Response [HTTP://localhost/ocpu/library/stats/R/rnorm]
  Date: 2015-10-16 00:51
  Status: 400
  Content-Type: text/plain; charset=utf-8
  Size: 30 B
No Content-Type header found.

Я думаю, я не понимаю, в чем эквивалентность скручиваемости -d параметр в httrКак я могу получить это правильно?

1 ответ

Решение

Попробуй это:)

library(httr)
library(jsonlite)

getFunctionEndPoint <- function(url, format) {
    return(paste(url, format, sep = '/'))
}

resp <- POST(
    url = getFunctionEndPoint(
        url = "https://public.opencpu.org/ocpu/library/stats/R/rnorm",
        format = "json"),
    body = list(n = 10, mean = 100), 
    encode = 'json')

fromJSON(rawToChar(resp$content))
Другие вопросы по тегам