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; }
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; } }
/** * 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); }
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()); }
/** * 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; }
/** * 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()); }