使用Rcurl的内部服务器错误

时间:2013-06-28 17:47:39

标签: r curl rcurl

我想使用RCurl

使用以下curl命令
curl -X POST http://test.reco4j.org:7474/db/data/ext/Reco4jRecommender/node/248/get_recommendations -H "Content-Type: application/json" -d '{"type":"0"}'

所以我使用以下R代码

library(RCurl)
library(RJSONIO)
postForm("http://test.reco4j.org:7474/db/data/ext/Reco4jRecommender/node/248/get_recommendations",
         .opts = list(postfields = toJSON(list(id = "0")),
                      httpheader = c('Content-Type' = 'application/json', ssl.verifypeer = FALSE)
                      ))

但是我得到了一个"内部服务器错误",所以我不确定我的R代码是错误的还是Windows问题。
我之所以提到这个原因,原来的curl命令在windows中失败但在Mac和Linux上运行,所以我不确定R失败是Windows问题还是R问题。

2 个答案:

答案 0 :(得分:1)

您的代码中有错误。您需要发送的对"type":"0"即发送"id":"0"

library(RCurl)
library(RJSONIO)
res <- postForm("http://test.reco4j.org:7474/db/data/ext/Reco4jRecommender/node/248/get_recommendations",
         .opts = list(postfields = toJSON(list(type = "0")),
                      httpheader = c('Content-Type' = 'application/json', ssl.verifypeer = FALSE)
                      ))
out <- fromJSON(rawToChar(res))

> head(out[[1]])
$outgoing_relationships
[1] "http://test.reco4j.org:7474/db/data/node/2285/relationships/out"

$data
$data$movieId
[1] 1342

$data$title
[1] "Convent, The (Convento, O) (1995)"

$data$releaseDate
[1] "14-Jun-1996"

答案 1 :(得分:0)

它看起来像一个糟糕的网址。我得到HTTP ERROR 500: INTERNAL_SERVER_ERROR尝试在firefox中访问该网址。

编辑:忽略,你是对的:curl命令在shell提示符下工作。很抱歉怀疑你。