/** * {@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; }
/** * {@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; }