我在名为 test.rq
的文件中有一个 SPARQL 查询。使用来自该文件的查询的 cURL 发送 SPARQL 请求的好方法是什么?
(我可以使用专用的 SPARQL 客户端或通过使用 HTTP 库对请求进行编程来执行此类请求,但我假设快速命令行请求(例如,使用 cURL)也应该可行。 )
发送 SPARQL 请求的标准方式有以下三种:
尝试 1:GET
我尝试了类似下面的操作,但是 $(VALUE)
必须来自文件 test.rq
并且它必须是 URL 编码的。
curl -d 'query=$(VALUE)' $(ENDPOINT)
方法 2:URL 编码的 POST
我尝试了类似下面的操作,但是 $(VALUE)
应该再次来自文件 test.rq
,并且应该应用 URL 编码。
curl -X POST -d '$(VALUE)' -H 'Content-Type: application/x-www-form-urlencoded' $(ENDPOINT)
方法 3:直接 POST
这应该在没有 URL 编码的情况下工作,执行如下操作。
curl -X POST -d '@query.rq' -H 'Content-Type: application/sparql-query' $(ENDPOINT)
不幸的是,大多数 SPARQL 端点不支持这第三种方法:(
最佳答案
文件中的案例 1:
URL 对文件内容进行编码,并将其作为 ?query=
curl --data-urlencode 'query@Q.rq' $(ENDPOINT)
关于curl - 如何基于查询文件发送 SPARQL cURL 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46708726/