Example #1
2
 /**
  * {@inheritdoc}
  */
 public function updateFromResponse(Response $response, $uri = null)
 {
     foreach ($response->getHeader('Set-Cookie', false) as $cookie) {
         $this->set(Cookie::fromString(urldecode($cookie), $uri));
     }
 }
Example #2
0
 /**
  * Reads response meta tags to guess content-type charset.
  *
  * @param Response $response
  *
  * @return Response
  */
 protected function filterResponse($response)
 {
     $contentType = $response->getHeader('Content-Type');
     if (!$contentType || false === strpos($contentType, 'charset=')) {
         if (preg_match('/\\<meta[^\\>]+charset *= *["\']?([a-zA-Z\\-0-9]+)/i', $response->getContent(), $matches)) {
             $headers = $response->getHeaders();
             $headers['Content-Type'] = $contentType . ';charset=' . $matches[1];
             $response = new Response($response->getContent(), $response->getStatus(), $headers);
         }
     }
     return parent::filterResponse($response);
 }
 public function getHeader($header, $first = true)
 {
     $value = parent::getHeader($header, $first);
     if ('Content-type' == ucwords(strtolower($header))) {
         $args = func_get_args();
         if (isset($args[2]) && true === $args[2]) {
             return parent::getHeader($header, $first);
         }
         return Filter::replaceHeaderCharset($value);
     }
     return $value;
 }
Example #4
0
 public function testGetHeader()
 {
     $response = new Response('foo', 200, array('Content-Type' => 'text/html', 'Set-Cookie' => array('foo=bar', 'bar=foo')));
     $this->assertEquals('text/html', $response->getHeader('Content-Type'), '->getHeader() returns a header of the response');
     $this->assertEquals('text/html', $response->getHeader('content-type'), '->getHeader() returns a header of the response');
     $this->assertEquals('text/html', $response->getHeader('content_type'), '->getHeader() returns a header of the response');
     $this->assertEquals('foo=bar', $response->getHeader('Set-Cookie'), '->getHeader() returns the first header value');
     $this->assertEquals(array('foo=bar', 'bar=foo'), $response->getHeader('Set-Cookie', false), '->getHeader() returns all header values if first is false');
     $this->assertNull($response->getHeader('foo'), '->getHeader() returns null if the header is not defined');
     $this->assertEquals(array(), $response->getHeader('foo', false), '->getHeader() returns an empty array if the header is not defined and first is set to false');
 }