/**
  * @param GAQuery $pQuery
  * @return array
  */
 public function retrieveData(GAQuery $pQuery)
 {
     if (!$this->isAuth()) {
         return null;
     }
     $r = new Request($pQuery->get());
     $header[] = 'Authorization: GoogleLogin auth=' . $this->getAuth();
     $r->setOption(CURLOPT_SSL_VERIFYPEER, 0);
     $r->setOption(CURLOPT_HTTPHEADER, $header);
     $r->setOption(CURLOPT_HEADER, false);
     return SimpleJSON::decode($r->execute());
 }
Beispiel #2
0
 /**
  * Méthode de demande d'authentication pour le service google souhaité
  * @return void
  */
 private function login()
 {
     $r = new Request(self::URL_LOGIN);
     $r->setOption(CURLOPT_FOLLOWLOCATION, true);
     $r->setOption(CURLOPT_SSL_VERIFYPEER, 0);
     $data = array('accountType' => $this->account_type, 'Email' => $this->email, 'Passwd' => $this->password, 'source' => self::SOURCE, 'service' => $this->service);
     $r->setDataPost($data);
     $retour = $r->execute();
     $retour = preg_replace("/(\n|\r)/", "", $retour);
     $toParse = array("Auth", "LSID", "SID");
     foreach ($toParse as $var) {
         if (preg_match("/" . $var . "=(.*)\$/", $retour, $extract, PREG_OFFSET_CAPTURE)) {
             try {
                 $this->{$var} = $extract[1][0];
                 $retour = preg_replace("/" . $var . "=.*\$/", "", $retour);
             } catch (Exception $e) {
                 return;
             }
         } else {
             return;
         }
     }
 }
Beispiel #3
0
 /**
  * Exécute un ensemble de requête GET via les méthodes curl_multi_*
  * @param string[] $pUrlArr
  * @return array
  */
 public static function multiLoad($pUrlArr)
 {
     $requests = array();
     foreach ($pUrlArr as $url) {
         /** @var Request $r */
         $r = new Request($url);
         $r->setOption(CURLOPT_RETURNTRANSFER, 1);
         $requests[] = $r;
     }
     $mh = curl_multi_init();
     foreach ($requests as $r) {
         curl_multi_add_handle($mh, $r->getResource());
     }
     $active = null;
     //execute the handles
     do {
         $mrc = curl_multi_exec($mh, $active);
     } while ($mrc == CURLM_CALL_MULTI_PERFORM);
     while ($active && $mrc == CURLM_OK) {
         if (curl_multi_select($mh) != -1) {
             do {
                 $mrc = curl_multi_exec($mh, $active);
             } while ($mrc == CURLM_CALL_MULTI_PERFORM);
         }
     }
     $return = array();
     foreach ($requests as $r) {
         $return[] = curl_multi_getcontent($r->getResource());
     }
     foreach ($requests as $r) {
         curl_multi_remove_handle($mh, $r->getResource());
     }
     curl_multi_close($mh);
     return $return;
 }