/** * Response constructor. * * @param string $content * @param int $code */ public function __construct($content, $code = HttpCodes::HTTP_OK) { $this->content = $content; $this->code = $code; // Set default message $this->message = HttpCodes::getMessageForCode($code); }
/** * @param RequestInterface $request * * @return ResponseInterface * @throws Exception * @throws \Retrinko\Scylla\Exceptions\Exception */ protected function executeRequest(RequestInterface $request) { $loggerEnv['request-method'] = $request->getRequestMethod(); $loggerEnv['request-url'] = $request->getUrl(); $loggerEnv['request-params'] = $request->getParams(); // Execute request /** @var ResponseInterface $response */ $response = $this->httpClient->exec($request)->current(); // Add info to loggerEnv $loggerEnv['code'] = $response->getCode(); $loggerEnv['msg'] = $response->getMessage(); $loggerEnv['content'] = $response->getContent(); // Check response code $code = $response->getCode(); if (false === HttpCodes::isError($code)) { $this->logger->notice('Request execution success!', $loggerEnv); } else { $this->logger->error('Error executing request!', $loggerEnv); throw new Exception(sprintf('Error executing request [%s] %s (%s): %s', $request->getRequestMethod(), $request->getUrl(), implode(', ', $request->getParams()), $response->getMessage())); } return $response; }
$client->usePipelining(true); // Create requests $urls = ['ip' => 'https://httpbin.org/ip', 'userAgent' => 'https://httpbin.org/user-agent', 'get' => 'https://httpbin.org/get']; $requestsCollection = new RequestsCollection(); foreach ($urls as $id => $url) { // Configure request $request = new JsonRequest($url); $request->setId($id); // Add request to requests collecction $requestsCollection->add($request); } // Execute requests $responsesCollection = $client->exec($requestsCollection); // Get responses foreach ($responsesCollection as $requestId => $response) { /** @var ResponseInterface $response */ // Check http code and read response data or error message $code = $response->getCode(); if (false == HttpCodes::isError($code)) { $logger->notice('Execution success!', ['requestId' => $requestId]); // Get response body $data = $response->getDecodedContent(); var_dump($data); } else { // Get response message (error) $logger->error($response->getMessage(), ['requestId' => $requestId]); } } } catch (\Exception $e) { $logger->alert($e->getMessage()); }