示例#1
0
文件: Api.php 项目: KinaMarie/connect
 private function processResponse(Response $response)
 {
     $this->logger->info('Response:' . $response);
     if (500 <= $response->getStatusCode()) {
         throw new ApiServerException($response->getStatusCode(), $response->getContent(), $response->getReasonPhrase(), $response->getHeaders());
     }
     if (400 <= $response->getStatusCode()) {
         try {
             $error = $this->parser->parse($response->getContent());
             $error = $error instanceof Model\Error ? $error : new Model\Error();
         } catch (ApiParserException $e) {
             throw new ApiClientException($response->getStatusCode(), $response->getContent(), $response->getReasonPhrase(), $response->getHeaders(), null, $e);
         }
         throw new ApiClientException($response->getStatusCode(), $response->getContent(), $response->getReasonPhrase(), $response->getHeaders(), $error);
     }
     if (204 === $response->getStatusCode()) {
         return true;
     }
     $content = trim($response->getContent());
     if (empty($content)) {
         return true;
     }
     $object = $this->parser->parse($content);
     $object->setApi($this);
     return $object;
 }
示例#2
0
文件: Api.php 项目: nfabre/connect
 private function processResponse(Response $response)
 {
     if (null !== $this->logger) {
         $this->logger->info(sprintf('Status Code %s', $response->getStatusCode()));
         $this->logger->debug(var_export($response->getContent(), true));
     }
     if (500 <= $response->getStatusCode()) {
         throw new ApiServerException($response->getStatusCode(), $response->getContent(), $response->getReasonPhrase(), $response->getHeaders());
     }
     if (400 <= $response->getStatusCode()) {
         throw new ApiClientException($response->getStatusCode(), $response->getContent(), $response->getReasonPhrase(), $response->getHeaders());
     }
     if (204 === $response->getStatusCode()) {
         return true;
     }
     if (null !== $response->getContent()) {
         $object = $this->parser->parse($response->getContent());
         $object->setApi($this);
         return $object;
     }
 }
示例#3
0
 /**
  * Converts a buzz response to a pinterest response.
  *
  * @param Request      $request      The request.
  * @param BuzzResponse $buzzResponse The buzz response.
  *
  * @return Response The response.
  */
 private static function convertResponse(Request $request, BuzzResponse $buzzResponse)
 {
     $statusCode = $buzzResponse->getStatusCode();
     $rawBody = (string) $buzzResponse->getContent();
     $rawHeaders = $buzzResponse->getHeaders();
     $headers = array();
     foreach ($rawHeaders as $header) {
         if (stristr($header, 'HTTP/1.')) {
             continue;
         }
         list($key, $value) = explode(': ', $header);
         $headers[$key] = $value;
     }
     return new Response($request, $statusCode, $rawBody, $headers);
 }
示例#4
0
    public function testFromString()
    {
        $content = <<<EOF
This is the body.

More body!

EOF;
        $response = new Response();
        $response->fromString(<<<EOF
HTTP/1.0 200 OK
Content-Type: text/plain

{$content}
EOF
);
        $this->assertEquals(2, count($response->getHeaders()));
        $this->assertEquals($content, $response->getContent());
    }
示例#5
0
 /**
  * Get headers from a Buzz response.
  *
  * @param BuzzResponse $response
  *
  * @return array
  */
 private function getBuzzHeaders(BuzzResponse $response)
 {
     $buzzHeaders = $response->getHeaders();
     unset($buzzHeaders[0]);
     $headers = [];
     foreach ($buzzHeaders as $headerLine) {
         list($name, $value) = explode(':', $headerLine, 2);
         $headers[$name] = trim($value);
     }
     return $headers;
 }
示例#6
0
 /**
  * Get all response headers.
  *
  * @return array Associative array with $header => $value (value can be an array if it hasn't a single value)
  *
  * @throws \RuntimeException If request hasn't been send already
  */
 public function getHeaders()
 {
     return $this->unFormatHeaders($this->response->getHeaders());
 }