R的httr包中curl中-d参数的等效性
equivalence of -d parameter in curl in httr package of R
我正在关注 R 中 opencpu
包的 official manual。在 章节 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
获得类似的结果,但是当我尝试使用 R 中的 httr
包发送此 http 请求时,我不知道如何复制结果。这是我尝试过的:
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.
我想我不明白 httr
中 curl -d
参数的等价性是什么,我怎样才能正确?
试试这个:)
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))
我正在关注 R 中 opencpu
包的 official manual。在 章节 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
获得类似的结果,但是当我尝试使用 R 中的 httr
包发送此 http 请求时,我不知道如何复制结果。这是我尝试过的:
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.
我想我不明白 httr
中 curl -d
参数的等价性是什么,我怎样才能正确?
试试这个:)
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))