/** * Updates the cookie store from a Request/Response pair. * * @param Request $request * @param Response $response * * @return void */ public function update(Request $request, Response $response) { $origin = CookieOrigin::createFromRequest($request); foreach ($response->getCookies() as $cookie) { $this->addCookie($cookie, $origin); } }
public function register(\Brick\Event\EventDispatcher $dispatcher) { $dispatcher->addListener(NonResponseResultEvent::class, function (NonResponseResultEvent $event) { $response = new Response(); $response->setContent(json_encode($event->getControllerResult())); $response->setHeader('Content-Type', 'application/json'); $event->setResponse($response); }); }
/** * {@inheritdoc} */ public function handle(Request $request) { $request->setHeader('Connection', 'close'); $path = $request->getHost(); if ($request->isSecure()) { $path = 'ssl://' . $path; } $fp = fsockopen($path, $request->getPort()); fwrite($fp, $request); return Response::parse(stream_get_contents($fp)); }
/** * Parses the response as an XML / HTML document. * * If the response is not a valid document, and empty document is returned. * * @return \DOMDocument */ public function parseDocument() { $pattern = '/(x|ht)ml(?:.*;charset=(\\S+))?/i'; $contentType = $this->response->getHeader('Content-Type'); $isDocument = preg_match($pattern, $contentType, $matches) == 1; $charset = isset($matches[2]) ? $matches[2] : 'UTF-8'; $useInternalErrors = libxml_use_internal_errors(true); $disableEntityLoader = libxml_disable_entity_loader(true); $document = new \DOMDocument('1.0', $charset); $document->validateOnParse = true; if ($isDocument) { $isXml = strtolower($matches[1]) == 'x'; if ($isXml) { $document->loadXML($this->getText()); } else { $document->loadHTML($this->getText()); } } libxml_use_internal_errors($useInternalErrors); libxml_disable_entity_loader($disableEntityLoader); return $document; }
public function testIsType() { $response = new Response(); for ($statusCode = 100; $statusCode <= 999; $statusCode++) { $response->setStatusCode($statusCode); $digit = substr($statusCode, 0, 1); $this->assertSame($digit == 1, $response->isInformational()); $this->assertSame($digit == 2, $response->isSuccessful()); $this->assertSame($digit == 3, $response->isRedirection()); $this->assertSame($digit == 4, $response->isClientError()); $this->assertSame($digit == 5, $response->isServerError()); } }
/** * @param string $body * * @return ResponseAssertion */ public function hasBody($body) { $this->testCase->assertSame($body, (string) $this->response->getBody()); return $this; }
/** * @param int $statusCode * @param Response $response */ private function assertStatusCode($statusCode, Response $response) { $this->assertSame($statusCode, $response->getStatusCode()); }
/** * Converts an HttpException to a Response. * * @param \Brick\Http\Exception\HttpException $exception * @param \Brick\Http\Request $request * * @return \Brick\Http\Response */ private function handleHttpException(HttpException $exception, Request $request) { $response = new Response(); $response->setContent($exception); $response->setStatusCode($exception->getStatusCode()); $response->setHeaders($exception->getHeaders()); $response->setHeader('Content-Type', 'text/plain'); $event = new ExceptionCaughtEvent($exception, $request, $response); $this->eventDispatcher->dispatch(ExceptionCaughtEvent::class, $event); return $response; }
/** * Writes the session cookie to the Response. * * @param \Brick\Http\Response $response * * @return void */ public function handleResponse(Response $response) { $lifetime = $this->cookieParams['lifetime']; $expires = $lifetime == 0 ? 0 : time() + $lifetime; $cookie = new Cookie($this->cookieParams['name'], $this->id); $cookie->setExpires($expires)->setPath($this->cookieParams['path'])->setDomain($this->cookieParams['domain'])->setSecure($this->cookieParams['secure'])->setHttpOnly($this->cookieParams['http-only']); $response->setCookie($cookie); }