2013-06-28 3 views
1

Я хочу использовать следующую завиток команду, используя RCurlВнутренняя ошибка сервера с помощью RCurl

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) 
        )) 

Но я получаю «Внутренняя errror сервер», поэтому я не уверен, что мой код R неправильный или это проблема с окнами.
Причина, по которой я упоминаю об этом, заключается в том, что исходная команда curl не работает в Windows, но работает на Mac и Linux, поэтому я не уверен, что R-ошибка - это проблема с Windows или проблема с R.

ответ

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" 
+0

Отлично, спасибо большое – user1848018

0

Похоже, что это плохой URL. Я получаю HTTP ERROR 500: INTERNAL_SERVER_ERROR, пытаясь получить доступ к этому URL-адресу в firefox.

EDIT: Не обращайте внимания, вы правы: команда curl работала в командной строке. Извините за то, что вы сомневались.

+0

Но когда я запускаю команду из Linux или Mac, она работает нормально. – user1848018