/**
  * @param string    $url
  * @param \DateTime $lastModified
  *
  * @return HttpDriverResponse
  *
  * @throws DriverUnreachableResourceException
  */
 public function getResponse($url, \DateTime $lastModified)
 {
     if (!is_readable($url)) {
         throw new DriverUnreachableResourceException("not found or not readable : {$url}");
     }
     $body = file_get_contents($url);
     $response = new HttpDriverResponse();
     $response->setHttpCode(HttpDriverResponse::HTTP_CODE_OK);
     $response->setBody($body);
     return $response;
 }
 /**
  * @param string    $url
  * @param \DateTime $lastModified
  *
  * @return HttpDriverResponse
  * @deprecated removed in version 3.0
  */
 public function getResponse($url, \DateTime $lastModified)
 {
     $ressource = $this->client->request('GET', $url);
     $response = new HttpDriverResponse();
     $response->setHttpCode($ressource->getStatusCode());
     $response->setHttpVersion($ressource->getProtocolVersion());
     $response->setHttpMessage($ressource->getReasonPhrase());
     $response->setHeaders($ressource->getHeaders());
     $response->setBody($ressource->getBody());
     return $response;
 }
 /**
  * @param string $headerString
  * @param string $body
  *
  * @return \Debril\RssAtomBundle\Driver\HttpDriverResponse
  */
 public function getHttpResponse($headerString, $body)
 {
     $headers = array();
     preg_match('/(?<version>\\S+) (?P<code>\\d+) (?P<message>\\V+)/', $headerString, $headers);
     $response = new HttpDriverResponse();
     $response->setBody($body);
     $response->setHttpCode($headers['code']);
     $response->setHttpMessage($headers['message']);
     $response->setHttpVersion($headers['version']);
     $response->setHeaders($headerString);
     return $response;
 }
Exemplo n.º 4
0
 /**
  * @param $responseHttpCode
  *
  * @return \Debril\RssAtomBundle\Driver\HttpCurlDriver a mocked instance
  */
 public function getMockDriver($responseHttpCode)
 {
     $mock = $this->getMock('\\Debril\\RssAtomBundle\\Driver\\HttpCurlDriver');
     $response = new HttpDriverResponse();
     $response->setHttpCode($responseHttpCode);
     $mock->expects($this->any())->method('getResponse')->will($this->returnValue($response));
     return $mock;
 }
Exemplo n.º 5
0
 /**
  * Parse the body of a feed and write it into the FeedInInterface instance.
  *
  * @param HttpDriverResponse $response
  * @param FeedInInterface    $feed
  * @param array              $filters
  *
  * @return FeedInInterface
  */
 public function parseBody(HttpDriverResponse $response, FeedInInterface $feed, array $filters = array())
 {
     if ($response->getHttpCodeIsOk() || $response->getHttpCodeIsRedirection()) {
         $xmlBody = new SimpleXMLElement($response->getBody());
         $parser = $this->getAccurateParser($xmlBody);
         return $parser->parse($xmlBody, $feed, $filters);
     }
     switch ($response->getHttpCode()) {
         case HttpDriverResponse::HTTP_CODE_NOT_FOUND:
             throw new FeedNotFoundException($response->getHttpMessage());
         case HttpDriverResponse::HTTP_CODE_NOT_MODIFIED:
             throw new FeedNotModifiedException($response->getHttpMessage());
         case HttpDriverResponse::HTTP_CODE_SERVER_ERROR:
             throw new FeedServerErrorException($response->getHttpMessage());
         case HttpDriverResponse::HTTP_CODE_FORBIDDEN:
             throw new FeedForbiddenException($response->getHttpMessage());
         default:
             throw new FeedCannotBeReadException($response->getHttpMessage(), $response->getHttpCode());
     }
 }