TinkerPop3通过浏览器进行休息测试

时间:2015-06-27 13:22:22

标签: gremlin tinkerpop3

我在收到curl请求时收到了有效的回复:

bin/gremlin-server.bat conf/gremlin-server-rest-modern.yaml

curl "http://localhost:8182?gremlin=100-1"
curl "http://localhost:8182?gremlin=g.V()"

但是通过浏览器我得到了以下按摩:

{"message":"no gremlin script supplied"}

也尝试如下,但没有结果:

http://localhost:8182/gremlin?script=g.V()
http://localhost:8182/graphs/tinkergraph/tp/gremlin?script=g.traversal().V()
http://localhost:8182/graphs/tinkergraph/tp/gremlin?script=g.V()

有关通过浏览器传递脚本的有效方式的任何建议。

4 个答案:

答案 0 :(得分:2)

我不确定这是一个"错误"确切地说,但Gremlin Server并不尊重非常复杂的ACCEPT标题。例如,当我尝试在Chrome中解析您的前两个网址之一时,我得到:

{
  message: "no serializer for requested Accept header: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"
}

默认情况下,Gremlin Server不支持ACCEPT。如果浏览器已请求application/json或仅*.*,则可以使用。请注意*.*与质量0.8一起出现,但Gremlin Server没有解析标题以确定它。结果,它无法找到序列化器来正确处理它。

我所知道的浏览器没有解决方法。我已经创建了一个问题来解决这个问题:

https://issues.apache.org/jira/browse/TINKERPOP3-752

答案 1 :(得分:1)

当我在启动gremlin-server之前忘记启动cassandra时,我也看到了这个错误。

答案 2 :(得分:0)

由于你的问题,我找到了答案,所以我会为@ stacey-morgan寻找合适的答案: 您在CLI上查询:

curl "http://localhost:8182?gremlin=100-1"

然后你可能被查询(因为你的问题不清楚)

http://localhost:8182/gremlin?script=100-1

或者你做过的其他人,就像我一样:

http://localhost:8182/gremlin?script=g.V()

您将收到错误消息。 正确的方法只是粘贴curl命令中的“”内容。所以

http://localhost:8182?gremlin=100-1

然后同样适用于您的其他查询:

http://localhost:8182/?gremlin=g.V()
http://localhost:8182/?gremlin=g.traversal().V()

注意:尾部斜杠should在那里,虽然它在我的FF上没有它。那就是HTTP。

使用:Ubuntu& Titan1.0.0-hadoop1。

答案 3 :(得分:0)

我的问题是由于请求中存在空格。

这很有效;

curl http://localhost:8182/?gremlin="g.V().has('name','foody')"

但这没有;

curl http://localhost:8182/?gremlin="g.V().has('name', 'foody')"

尝试从你的手中移除它们,它们应该有效。