コード例 #1
0
ファイル: Json.php プロジェクト: navtis/xerxes-pazpar2
 /**
  * Encode data as JSON and set response header
  *
  * @param  mixed $data
  * @param  array $jsonOptions Options to pass to JsonFormatter::encode()
  * @return string|void
  */
 public function __invoke($data, array $jsonOptions = array())
 {
     $data = JsonFormatter::encode($data, null, $jsonOptions);
     if ($this->response instanceof Response) {
         $headers = $this->response->headers();
         $headers->addHeaderLine('Content-Type', 'application/json');
     }
     return $data;
 }
コード例 #2
0
 public function getXmlAction($isin)
 {
     $display = new DisplayHelper();
     $certificate = $this->certificateRepository->load($isin);
     if (empty($certificate)) {
         return $this->response->setStatusCode(404);
     }
     try {
         $xml = $display->displayAsXml($certificate);
     } catch (\RuntimeException $e) {
         return $this->response->setStatusCode(405)->setContent($e->getMessage());
     }
     $this->response->headers()->addHeaderLine('Content-type', 'application/xml');
     return $this->response->setContent($xml);
 }
コード例 #3
0
ファイル: Http.php プロジェクト: rickogden/zf2
    /**
     * Challenge Client
     *
     * Sets a 401 or 407 Unauthorized response code, and creates the
     * appropriate Authenticate header(s) to prompt for credentials.
     *
     * @return Zend\Authentication\Result Always returns a non-identity Auth result
     */
    protected function _challengeClient()
    {
        if ($this->_imaProxy) {
            $statusCode = 407;
            $headerName = 'Proxy-Authenticate';
        } else {
            $statusCode = 401;
            $headerName = 'WWW-Authenticate';
        }

        $this->_response->setStatusCode($statusCode);

        // Send a challenge in each acceptable authentication scheme
        $headers = $this->_response->headers();
        if (in_array('basic', $this->_acceptSchemes)) {
            $headers->addHeaderLine($headerName, $this->_basicHeader());
        }
        if (in_array('digest', $this->_acceptSchemes)) {
            $headers->addHeaderLine($headerName, $this->_digestHeader());
        }
        return new Authentication\Result(
            Authentication\Result::FAILURE_CREDENTIAL_INVALID,
            array(),
            array('Invalid or absent credentials; challenging client')
        );
    }
コード例 #4
0
ファイル: ResponseTest.php プロジェクト: alab1001101/zf2
 public function testRequestCanSetHeaders()
 {
     $response = new Response();
     $headers = new \Zend\Http\Headers();
     $ret = $response->setHeaders($headers);
     $this->assertInstanceOf('Zend\\Http\\Response', $ret);
     $this->assertSame($headers, $response->headers());
 }
コード例 #5
0
ファイル: Json.php プロジェクト: rafalwrzeszcz/zf2
 /**
  * Encode data as JSON, disable layouts, and set response header
  *
  * If $keepLayouts is true, does not disable layouts.
  *
  * @param  mixed $data
  * @param  bool $keepLayouts
  * NOTE:   if boolean, establish $keepLayouts to true|false
  *         if array, admit params for Zend_Json::encode as enableJsonExprFinder=>true|false
  *         this array can contains a 'keepLayout'=>true|false
  *         that will not be passed to Zend_Json::encode method but will be used here
  * @return string|void
  */
 public function __invoke($data, $keepLayouts = false)
 {
     $options = array();
     if (is_array($keepLayouts)) {
         $options = $keepLayouts;
         $keepLayouts = array_key_exists('keepLayouts', $keepLayouts) ? $keepLayouts['keepLayouts'] : false;
         unset($options['keepLayouts']);
     }
     $data = JsonFormatter::encode($data, null, $options);
     if (!$keepLayouts && $this->layout instanceof Layout) {
         $this->layout->disableLayout();
     }
     if ($this->response instanceof Response) {
         $headers = $this->response->headers();
         $headers->addHeaderLine('Content-Type', 'application/json');
     }
     return $data;
 }
コード例 #6
0
ファイル: OpenId.php プロジェクト: rikaix/zf2
 /**
  * Performs a HTTP redirection to specified URL with additional data.
  * It may generate redirected request using GET or POST HTTP method.
  * The function never returns.
  *
  * @param string $url URL to redirect to
  * @param array $params additional variable/value pairs to send
  * @param Response $response
  * @param string $method redirection method ('GET' or 'POST')
  */
 public static function redirect($url, $params = null, Response $response = null, $method = 'GET')
 {
     $url = self::absoluteUrl($url);
     $body = "";
     if (null === $response) {
         $response = new Response();
     }
     if ($method == 'POST') {
         $body = "<html><body onLoad=\"document.forms[0].submit();\">\n";
         $body .= "<form method=\"POST\" action=\"{$url}\">\n";
         if (is_array($params) && count($params) > 0) {
             foreach ($params as $key => $value) {
                 $body .= '<input type="hidden" name="' . $key . '" value="' . $value . "\">\n";
             }
         }
         $body .= "<input type=\"submit\" value=\"Continue OpenID transaction\">\n";
         $body .= "</form></body></html>\n";
     } else {
         if (is_array($params) && count($params) > 0) {
             if (strpos($url, '?') === false) {
                 $url .= '?' . self::paramsToQuery($params);
             } else {
                 $url .= '&' . self::paramsToQuery($params);
             }
         }
     }
     if (!empty($body)) {
         $response->setContent($body);
     } elseif (headers_sent()) {
         $response->setContent("<script language=\"JavaScript\"" . " type=\"text/javascript\">window.location='{$url}';" . "</script>");
     }
     $response->setStatusCode(302);
     $response->headers()->addHeaderLine('Location', $url);
     if (!headers_sent()) {
         header($response->renderStatusLine());
         foreach ($response->headers() as $header) {
             header($header->toString());
         }
     }
     echo $response->getBody();
     if (self::$exitOnRedirect) {
         exit;
     }
 }
コード例 #7
0
ファイル: ResponseTest.php プロジェクト: rafalwrzeszcz/zf2
 public function testConstructorWithHttpResponse()
 {
     $status = 'false';
     $errorCode = 'foobar';
     $responseBody = $status . "\n" . $errorCode;
     $httpResponse = new Response();
     $httpResponse->setStatusCode(200);
     $httpResponse->headers()->addHeaderLine('Content-Type', 'text/html');
     $httpResponse->setContent($responseBody);
     $response = new ReCaptcha\Response(null, null, $httpResponse);
     $this->assertSame(false, $response->getStatus());
     $this->assertSame($errorCode, $response->getErrorCode());
 }
コード例 #8
0
ファイル: Cookies.php プロジェクト: kingsj/core
 /**
  * Parse an HTTP response, adding all the cookies set in that response
  *
  * @param Response $response
  * @param Uri\Uri|string $ref_uri Requested URI
  */
 public function addCookiesFromResponse($response, $ref_uri)
 {
     if (!$response instanceof Response) {
         throw new Exception\InvalidArgumentException('$response is expected to be a Response object');
     }
     $cookie_hdrs = $response->headers()->get('Set-Cookie');
     if (is_array($cookie_hdrs)) {
         foreach ($cookie_hdrs as $cookie) {
             $this->addCookie($cookie, $ref_uri);
         }
     } elseif (is_string($cookie_hdrs)) {
         $this->addCookie($cookie_hdrs, $ref_uri);
     }
 }
コード例 #9
0
ファイル: Client.php プロジェクト: robo47/Goutte
 protected function createResponse(ZendResponse $response)
 {
     return new Response($response->getBody(), $response->getStatusCode(), $response->headers()->toArray());
 }