0

我需要在 Jena 事务中修改 RDFConnection 对象的请求(例如:更新)的标头(特别是 Content-Type)。更准确地说,我需要添加以下 Header Content_Type Content-Type = [application/sparql-query; charset=UTF-8]

在下面的代码中

try (RDFConnection conn = connectionFactory.create()) {
  Txn.executeWrite(conn, () -> {
    conn.update(updateRequest);// HERE we want to setup the Content-Type in the header
  });
}catch (Exception e) {... }

我已将 connectionFactory 设置如下

public RDFConnection create() {
    HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
    HttpClient httpClient = httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider)
        .build();
    return
        RDFConnectionRemote.create()
        .destination(endpointURL)
        .queryEndpoint("query")
        .updateEndpoint("update")
        .httpClient(httpClient)
        .parseCheckSPARQL(true)
        .build();
  }

因此,我仍然需要在请求标头 content-Type 中指定请求正文的字符集。我怎么能用 JENA 做到这一点?

注意:默认的 JENA RDFConnection 设置是不够的,因为远程端点仍然需要明确的字符集规范来解析我在 URI 中包含法语口音的 SPARQL 请求。

提前致谢

4

1 回答 1

0

Apache Jena 4.3.2 有一个统一的接口,可以详细控制 HTTP 请求。

http://jena.apache.org/documentation/sparql-apis/#changes

对于 SPARQL 更新UpdateExecutionHTTP.newBuilder()和 SPARQL 查询QueryExecutionHTTP.newBuilder(),有一个用于设置任何 HTTP 标头的构建器操作。

于 2022-01-18T21:55:23.997 回答