コード例 #1
0
 public function testPublicAccess()
 {
     $instance = new RepositoryClient('Foo', 'Bar', 'Nu', 'Vim');
     $this->assertSame('Foo', $instance->getDefaultGraph());
     $this->assertSame('Bar', $instance->getQueryEndpoint());
     $this->assertSame('Nu', $instance->getUpdateEndpoint());
     $this->assertSame('Vim', $instance->getDataEndpoint());
 }
コード例 #2
0
 /**
  * Execute a SPARQL query and return an RepositoryResult object
  * that contains the results. The method throws exceptions based on
  * GenericHttpDatabaseConnector::mapHttpRequestError(). If errors occur and this
  * method does not throw anything, then an empty result with an error
  * code is returned.
  *
  * @note This function sets the graph that is to be used as part of the
  * request. Queries should not include additional graph information.
  *
  * @param $sparql string with the complete SPARQL query (SELECT or ASK)
  *
  * @return RepositoryResult
  */
 public function doQuery($sparql)
 {
     if ($this->repositoryClient->getQueryEndpoint() === '') {
         throw new BadHttpDatabaseResponseException(BadHttpDatabaseResponseException::ERROR_NOSERVICE, $sparql, 'not specified');
     }
     $this->httpRequest->setOption(CURLOPT_URL, $this->repositoryClient->getQueryEndpoint());
     $this->httpRequest->setOption(CURLOPT_HTTPHEADER, array('Accept: application/sparql-results+xml,application/xml;q=0.8', 'Content-Type: application/x-www-form-urlencoded;charset=UTF-8'));
     $this->httpRequest->setOption(CURLOPT_POST, true);
     $defaultGraph = $this->repositoryClient->getDefaultGraph();
     $parameterString = "query=" . urlencode($sparql) . ($defaultGraph !== '' ? '&default-graph-uri=' . urlencode($defaultGraph) : '');
     $this->httpRequest->setOption(CURLOPT_POSTFIELDS, $parameterString);
     $httpResponse = $this->httpRequest->execute();
     if ($this->httpRequest->getLastErrorCode() == 0) {
         $xmlResponseParser = new XmlResponseParser();
         return $xmlResponseParser->parse($httpResponse);
     }
     $this->mapHttpRequestError($this->repositoryClient->getQueryEndpoint(), $sparql);
     $repositoryResult = new RepositoryResult();
     $repositoryResult->setErrorCode(RepositoryResult::ERROR_UNREACHABLE);
     return $repositoryResult;
 }