0

我想使用 http get 从 java 代码中查询 wordnet 的端点。我得到了到端点“wordnet.rkbexplorer.com”的连接,但我收到一个错误,即 sparsql-query 不正确。当我在 wordnet.rkbexplorer.com 网站上键入它时,查询本身就会执行。我的 GTTP GET 网址的语法不正确吗?我在这方面没有太多经验。

我的代码:

URL url = new URL("http://wordnet.rkbexplorer.com/sparql/?query="+query);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("GET");
String query =  "PREFIX id:   <http://wordnet.rkbexplorer.com/id/> "
              + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> "
              + "SELECT * WHERE { ?s rdfs:label ?o } LIMIT 10";

错误:

error at URI 3store:default#:1 - syntax error, unexpected $end, expecting identifier
4

1 回答 1

0

这可以用Firebug之类的东西进行调试。它的网络选项卡显示了在 HTTP 级别上发送到服务器的内容。在这种情况下,您可以看到网页上的表单正在使用 POST。服务器似乎期待 POST,这有效:

curl --data "query=PREFIX id:   <http://wordnet.rkbexplorer.com/id/> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT * WHERE { ?s rdfs:label ?o } LIMIT 10" "http://wordnet.rkbexplorer.com/sparql/"

因此,只需将您的代码切换为使用 POST 而不是 GET。

于 2012-12-03T23:45:15.783 回答