1

我想通过 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 问题。

4

2 回答 2

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"
于 2013-06-28T19:59:30.937 回答
0

它看起来像一个错误的 URL。我HTTP ERROR 500: INTERNAL_SERVER_ERROR尝试在 Firefox 中访问该 URL。

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

于 2013-06-28T19:25:33.180 回答