

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# SPARQL 查询取消
<a name="sparql-api-status-cancel"></a>

要获取 SPARQL 查询的状态，请使用 HTTP `GET` 或 `POST` 来向 `https://your-neptune-endpoint:port/sparql/status` 终端节点提出请求。

## SPARQL 查询取消请求参数
<a name="sparql-api-status-cancel-request"></a>

**cancelQuery**  
（必需）告知状态命令取消查询。该参数不接收值。

**queryId**  
（必需）要取消的正在运行的 SPARQL 查询的 ID。

**silent**  
（可选）如果 `silent=true`，则取消正在运行的查询，并且 HTTP 响应代码为 200。如果不存在 `silent` 或 `silent=false`，则取消查询，并且返回 HTTP 500 状态代码。

## SPARQL 查询取消示例
<a name="sparql-api-status-cancel-example"></a>

**示例 1：在 `silent=false` 的情况下取消**  
以下是在将 `silent` 参数设置为 `false` 的情况下使用 `curl` 取消查询的状态命令的示例：

```
curl https://your-neptune-endpoint:port/sparql/status \
  -d "cancelQuery" \
  -d "queryId=4d5c4fae-aa30-41cf-9e1f-91e6b7dd6f47" \
  -d "silent=false"
```

除非查询已开始流式传输结果，否则取消的查询将返回一个 HTTP 500 代码，其响应如下：

```
{
  "code": "CancelledByUserException",
  "requestId": "4d5c4fae-aa30-41cf-9e1f-91e6b7dd6f47",
  "detailedMessage": "Operation terminated (cancelled by user)"
}
```

如果查询返回了一个 HTTP 200 代码 (OK)，并且在取消之前已开始流式传输结果，则超时异常信息将发送到常规输出流。

**示例 2：在 `silent=true` 的情况下取消**  
以下状态命令与上面的示例相同，但在本示例中，`silent` 参数设置为 `true`：

```
curl https://your-neptune-endpoint:port/sparql/status \
  -d "cancelQuery" \
  -d "queryId=4d5c4fae-aa30-41cf-9e1f-91e6b7dd6f47" \
  -d "silent=true"
```

该命令将返回与 `silent=false` 时相同的响应，但这次取消的查询将返回 HTTP 200 代码，其响应如下：

```
{
  "head" : {
    "vars" : [ "s", "p", "o" ]
  },
  "results" : {
    "bindings" : [ ]
  }
}
```