/** * @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); }