Exemplo n.º 1
0
 /**
  * Sends requests to all servers.
  *
  * @param \http\Client\Request[] $requests Request list
  * @return \http\Client\Response[]
  * @throws \Jyxo\Webdav\Exception On error
  */
 protected function sendAllRequests(array $requests)
 {
     try {
         $responses = array();
         if ($this->parallelSending) {
             // Send parallel requests
             $client = new \http\Client();
             // Attach requests
             foreach ($requests as $request) {
                 $client->enqueue($request);
             }
             // Send
             $client->send();
             foreach ($requests as $server => $request) {
                 $response = $client->getResponse($request);
                 $responses[$server] = $response;
                 // Log
                 if ($this->logger !== null) {
                     $this->logger->log(sprintf("%s %d %s", $request->getRequestMethod(), $response->getResponseCode(), $request->getRequestUrl()));
                 }
             }
         } else {
             // Send by separate requests
             $client = new \http\Client();
             foreach ($requests as $server => $request) {
                 $client->reset();
                 $client->enqueue($request);
                 $client->send();
                 $response = $client->getResponse();
                 $responses[$server] = $response;
                 // Log
                 if ($this->logger !== null) {
                     $this->logger->log(sprintf("%s %d %s", $request->getRequestMethod(), $response->getResponseCode(), $request->getRequestUrl()));
                 }
             }
         }
         return $responses;
     } catch (\http\Exception $e) {
         throw new Exception($e->getMessage(), 0, $e);
     }
 }