curl - 如何基于查询文件发送 SPARQL cURL 请求?

标签 curl sparql

我在名为 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=

放入 HTTP URL 查询字符串中

curl --data-urlencode 'query@Q.rq' $(ENDPOINT)

关于curl - 如何基于查询文件发送 SPARQL cURL 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46708726/

相关文章:

php - 试图调用函数 "curl_init"

php - Paypal API,Curl 不返回任何输出

sparql - 如何跳过 DBpedia SPARQL 请求中的错误日期?

php - Square API Create Item 工作代码现在返回错误

php - 如何在 URL 中指定 Bing 上的位置

sparql - GraphDB Web 界面中的文本搜索?

sparql - SPARQL 查询上下文中的 'dataset' 是什么?

sparql - 仅当类型为文字时过滤语言

python - 使用 SPARQLWrapper 插入/删除/更新查询

http - curl_http_done : called premature