Exemplo n.º 1
0
 /**
  * {@inheritdoc}
  */
 public function sendRequests(array $requests)
 {
     $exceptions = array();
     foreach ($requests as $index => &$request) {
         if (is_string($request)) {
             $request = array($request);
         }
         if (is_array($request)) {
             $request = call_user_func_array(array($this->configuration->getMessageFactory(), 'createInternalRequest'), $request);
         }
         if (!$request instanceof OutgoingRequestInterface) {
             $exceptions[] = HttpAdapterException::requestIsNotValid($request);
             unset($requests[$index]);
         } elseif (!$request instanceof InternalRequestInterface) {
             $request = $this->configuration->getMessageFactory()->createInternalRequest($request->getUrl(), $request->getMethod(), $request->getProtocolVersion(), $request->getHeaders(), (string) $request->getBody());
         }
     }
     try {
         $responses = $this->sendInternalRequests($requests);
     } catch (MultiHttpAdapterException $e) {
         $exceptions = array_merge($exceptions, $e->getExceptions());
         $responses = $e->getResponses();
     }
     if (!empty($exceptions)) {
         throw new MultiHttpAdapterException($exceptions, $responses);
     }
     return $responses;
 }
Exemplo n.º 2
0
 /**
  * {@inheritdoc}
  */
 public function sendRequests(array $requests)
 {
     $responses = $exceptions = array();
     foreach ($requests as $index => &$request) {
         if (is_string($request)) {
             $request = array($request);
         }
         if (is_array($request)) {
             $request = call_user_func_array(array($this->getConfiguration()->getMessageFactory(), 'createInternalRequest'), $request);
         }
         if (!$request instanceof RequestInterface) {
             $exceptions[] = HttpAdapterException::requestIsNotValid($request);
             unset($requests[$index]);
         } elseif (!$request instanceof InternalRequestInterface) {
             $request = $this->getConfiguration()->getMessageFactory()->createInternalRequest($request->getUri(), $request->getMethod(), $request->getProtocolVersion(), $request->getHeaders(), $request->getBody());
         }
     }
     $success = function (ResponseInterface $response) use(&$responses) {
         $responses[] = $response;
     };
     $error = function (HttpAdapterException $exception) use(&$exceptions) {
         $exceptions[] = $exception;
     };
     $this->sendInternalRequests($requests, $success, $error);
     if (!empty($exceptions)) {
         throw new MultiHttpAdapterException($exceptions, $responses);
     }
     return $responses;
 }