2017-02-09 2 views
0

J'essaie d'utiliser les en-têtes HTTP afin que je puisse authentifier mon application pour interroger l'API publique ORCID (http://orcid.org). Je crée les en-têtes comme ceci:Comment ajouter des en-têtes http à une requête Apache Jena QueryEngineHTTP?

HttpOptions httpOptions = new HttpOptions(); 
Header contentTypeHeader = new BasicHeader("Content-Type", "application/orcid+json"); 
Header authorizationHeader = new BasicHeader("Authorization", "Bearer 5266384f-0567-43f0-9cd4-bc6f6a5dc3ea"); 
Header[] headers = new Header[2]; 
headers[1] = contentTypeHeader; 
headers[2] = authorizationHeader; 
httpOptions.setHeaders(headers); 

mais je ne sais pas comment mettre ces en-têtes à ma requête. J'écris ma requête comme ceci:

QueryExecution execution = new QueryEngineHTTP(endpoint, query); 

en utilisant le org.apache.jena.sparql.engine.http.QueryEngineHTTP

Répondre

0

Apache Jena maintenant (v3.1.1 et versions ultérieures) fournit des moyens pour passer dans un HttpClient avec la configuration de sécurité nécessaire.

Docmentation

... set up an appropriate HttpClient for authentication .... 

QueryExecution execution = QueryExecutionFactory.sparqlService(... , httpClient)