/**
  * @since  1.0
  *
  * @param HttpRequest $httpRequest
  */
 public function __construct(HttpRequest $httpRequest)
 {
     $errorCode = $httpRequest->getLastErrorCode();
     switch ($errorCode) {
         case 22:
             //	equals CURLE_HTTP_RETURNED_ERROR but this constant is not defined in PHP
             $httpCode = $httpRequest->getLastTransferInfo(CURLINFO_HTTP_CODE);
             $message = "HTTP request ended with {$httpCode} code\n";
             break;
         default:
             $message = $httpRequest->getLastError();
     }
     parent::__construct($message, $errorCode);
 }
 private function doDispatchAsyncJobFor($type, $title, $parameters, $dispatchableCallbackJob)
 {
     $parameters['async-job'] = array('type' => $type, 'title' => $title->getPrefixedDBkey());
     $this->httpRequest->setOption(ONOI_HTTP_REQUEST_METHOD, 'POST');
     $this->httpRequest->setOption(ONOI_HTTP_REQUEST_CONTENT_TYPE, "application/x-www-form-urlencoded");
     $this->httpRequest->setOption(ONOI_HTTP_REQUEST_CONTENT, 'parameters=' . json_encode($parameters));
     $this->httpRequest->setOption(ONOI_HTTP_REQUEST_CONNECTION_FAILURE_REPEAT, 2);
     $this->httpRequest->setOption(ONOI_HTTP_REQUEST_ON_COMPLETED_CALLBACK, function ($requestResponse) {
         wfDebugLog('smw', 'SMW\\DeferredRequestDispatchManager: ' . json_encode($requestResponse->getList()) . "\n");
     });
     $this->httpRequest->setOption(ONOI_HTTP_REQUEST_ON_FAILED_CALLBACK, function ($requestResponse) use($dispatchableCallbackJob, $title, $type, $parameters) {
         wfDebugLog('smw', "SMW\\DeferredRequestDispatchManager: Connection to SpecialDeferredRequestDispatcher failed therefore adding {$type} for " . $title->getPrefixedDBkey() . "\n");
         call_user_func_array($dispatchableCallbackJob, array($title, $parameters));
     });
     $this->httpRequest->execute();
     return true;
 }
 private function doPostJobWith($type, $title, $parameters, $dispatchableCallbackJob)
 {
     // Build requestToken as source verification during the POST request
     $parameters['timestamp'] = time();
     $parameters['requestToken'] = SpecialDeferredRequestDispatcher::getRequestToken($parameters['timestamp']);
     $parameters['async-job'] = array('type' => $type, 'title' => $title->getPrefixedDBkey());
     $this->httpRequest->setOption(ONOI_HTTP_REQUEST_METHOD, 'POST');
     $this->httpRequest->setOption(ONOI_HTTP_REQUEST_CONTENT_TYPE, "application/x-www-form-urlencoded");
     $this->httpRequest->setOption(ONOI_HTTP_REQUEST_CONTENT, 'parameters=' . json_encode($parameters));
     $this->httpRequest->setOption(ONOI_HTTP_REQUEST_CONNECTION_FAILURE_REPEAT, 2);
     $this->httpRequest->setOption(ONOI_HTTP_REQUEST_ON_COMPLETED_CALLBACK, function ($requestResponse) use($parameters) {
         $requestResponse->set('type', $parameters['async-job']['type']);
         $requestResponse->set('title', $parameters['async-job']['title']);
         wfDebugLog('smw', 'SMW\\DeferredRequestDispatchManager: ' . json_encode($requestResponse->getList(), JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) . "\n");
     });
     $this->httpRequest->setOption(ONOI_HTTP_REQUEST_ON_FAILED_CALLBACK, function ($requestResponse) use($dispatchableCallbackJob, $title, $type, $parameters) {
         $requestResponse->set('type', $parameters['async-job']['type']);
         $requestResponse->set('title', $parameters['async-job']['title']);
         wfDebugLog('smw', "SMW\\DeferredRequestDispatchManager: Connection to SpecialDeferredRequestDispatcher failed on {$type} with " . json_encode($requestResponse->getList(), JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) . " " . $title->getPrefixedDBkey() . "\n");
         call_user_func_array($dispatchableCallbackJob, array($title, $parameters));
     });
     $this->httpRequest->execute();
     return true;
 }
 /**
  * @since  2.0
  *
  * @param integer $timeout
  *
  * @return SparqlDatabase
  */
 public function setConnectionTimeoutInSeconds($timeout = 10)
 {
     $this->httpRequest->setOption(CURLOPT_CONNECTTIMEOUT, $timeout);
     return $this;
 }
示例#5
0
 /**
  * @since 0.1
  *
  * {@inheritDoc}
  */
 public function isFromCache()
 {
     return method_exists($this->httpRequest, 'isCached') ? $this->httpRequest->isCached() : false;
 }