示例#1
0
 /**
  * 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;
 }
示例#3
0
    $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());
}