我使用了两个不同的HTTP POST
实用程序(poster以及Python
requests API)来发布一个简单的SPARQL
插入{ {1}}。
我的网址是:Virtuoso
我的请求参数是:
http://localhost:8890/sparql
我将实际的SPARQL(default-graph-uri: <MY_GRAPH>
should-sponge: soft
debug: on
timeout:
format: application/xml
save: display
fname:
)放在邮件的内容中。
我尝试了不同的内容类型,但都没有。虽然上面的参数集指定INSERT DATA { GRAPH...
,但我确实得到200,但是响应是HTML格式,但是没有插入数据。当我尝试application/xml
的内容类型时,我得到409无效路径,这也在this post中引用。
我可以成功地执行text/turtle
,但是,由于性能原因,我希望超出有效负载长度限制。与GET的唯一区别是SPARQL在HTTP GET
参数下的URL中,POST 应在消息内容中启用更大的有效负载,方法是在同一请求中包含多个三元组,而不仅仅是一个(我有100个千片的插入)。我试图关注this documentation page。
答案 0 :(得分:1)
几天前我在这个问题上停下来试图用 curl
实现同样的目标。由于它是浏览器扩展的强大(且更方便)的替代方案,因此最终证明是成功的公式如下:
curl -X POST \
-H "Content-Type:application/sparql-update" \
-H "Accept:text/html" \
--data "select distinct ?Concept where {[] a ?Concept} LIMIT 100" http://localhost:8890/sparql
有关 this thread 中标题的更多详细信息。
答案 1 :(得分:0)
这个“问题”有很多方面,很难提供适合本网站的简单答案。这是我建议邮件列表的原因之一,它更适合于对话和/或多方面的帮助。
您是否尝试过使用curl
作为我们的大部分示例?
查看Mozilla附加组件的Poster页面,我发现您可能需要手动将?
添加到目标URI的末尾 - 所以{{1}而不是http://localhost:8890/sparql?
- 并且不清楚你是否在测试中做到了这一点。在project page上,我还注意到其last commit是在2012年,有a great many open issues。
我对Python并不熟悉,所以我没有在那里挖掘。
您是否尝试过设置http://localhost:8890/sparql
标题?这可能会对服务器返回的内容产生重大影响。
如果我理解您所描述的努力,则Accept:
查询参数应为format:
,其值不应为output-format:
,而是支持的格式之一{{3 }}
listed in the documentation或此问题都没有足够的详细信息来分析application/xml
错误的原因。允许我们重现此结果的明确细节将有助于,最佳地在一个独特的线程中。