gpt4 book ai didi

java - Jena:如何明确指定 RDFDataMgr.loadModel(url) 发送的 Accept Header?

转载 作者:行者123 更新时间:2023-11-29 08:44:38 25 4
gpt4 key购买 nike

我们需要查询一个有问题的 Http Content Negotiation 的服务器(它不理解 Accept Header 中的 q 参数)。所以我们需要用

发送查询

接受:应用程序/rdf+xml

代替耶拿的默认

接受:text/turtle,application/n-triples;q=0.9,application/rdf+xml;q=0.7,application/trig,application/n-quads;q=0.9,text/x- nquads;q=0.8,application/x-trig;q=0.7,application/ld+json;q=0.6,*/*;q=0.5

这是我们目前用来设置 Jena 的 Http 处理的 Java 代码:

static {
HttpOp.setDefaultHttpClient(createHttpClient(1000, 4000));
}

protected static HttpClient createHttpClient(final int connectTimeout, final int readTimeout) {
final RequestConfig requestConfig = RequestConfig.custom()
.setConnectTimeout(connectTimeout)
.setSocketTimeout(readTimeout)
.setContentCompressionEnabled(true)
.setRedirectsEnabled(true)
.build();

final HttpHost gndHost = new HttpHost("host.net", 80);
final PoolingHttpClientConnectionManager connMgr = new PoolingHttpClientConnectionManager();
connMgr.setDefaultMaxPerRoute(10);
connMgr.setMaxTotal(50);
connMgr.setMaxPerRoute(new HttpRoute(gndHost), 2);

return HttpClientBuilder.create()
.setConnectionManager(connMgr)
.setDefaultRequestConfig(requestConfig)
.build();
}

是否可以更改此常规设置,以便将 HttpQuery.setAccept("application/rdf+xml") 用于所有请求?

最佳答案

函数 QueryExecutionFactory.sparqlService 返回一个 QueryExecution 对象,它实际上是一个 QueryEngineHTTP,并且具有 set*ContentType 方法。

如果您想进行真正详细的控制,您可以将 HttpOp 直接与 HttpResponseHandler 一起使用,将输入流传递给 RDFDataMgr

关于java - Jena:如何明确指定 RDFDataMgr.loadModel(url) 发送的 Accept Header?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37316642/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com