Example #1
0
 /**
  * @param AbstractJob $job
  *
  * @throws ResultException
  */
 protected function doJob(AbstractJob $job)
 {
     /** @var $job Job */
     $resultData = null;
     try {
         $curl = new CurlWrapper();
         $curl->request($job->getUrl(), $job->getMethod(), $job->getRequestParams());
         $response['content'] = $curl->getResponse();
         $response['info'] = $curl->getTransferInfo();
     } catch (CurlWrapperCurlException $a) {
         $job->addDebug(['CurlWrapperCurlException' => $a->getMessage()]);
         throw new ResultException(ResultException::ERROR_CURL);
     } catch (CurlWrapperException $a) {
         $job->addDebug(['CurlWrapperCurlException' => $a->getMessage()]);
         throw new ResultException(ResultException::ERROR_CURL);
     } catch (\Exception $a) {
         $job->addDebug(['CurlWrapperCurlException' => $a->getMessage()]);
         throw new ResultException(ResultException::ERROR_CURL);
     }
     /**
      * saving data
      */
     if ($job->getSaveContent()) {
         $resultData['content'] = $response['content'];
     }
     if ($job->getSaveInfo()) {
         $resultData['info'] = $response['info'];
     }
     /**
      * analise response
      */
     if ($job->getExpectCode() && $job->getExpectCode() != $response['info']['http_code']) {
         throw new ResultException(ResultException::RETRY_EXPECTED_HTTP_CODE, $resultData);
     } elseif ($job->getExpectContent() && !$this->isContain($job->getExpectContent(), $response['content'])) {
         throw new ResultException(ResultException::RETRY_EXPECTED_CONTENT, $resultData);
     }
     /**
      * success result
      */
     throw new ResultException(ResultException::R_SUCCESS, $resultData);
 }