66,7 → 66,56 |
return $retour; |
} |
|
public function envoyerCurlRequete($url, $mode, Array $donnees = array()) { |
$this->url = $url; |
$contenu = false; |
if (! in_array($mode, $this->http_methodes)) { |
$e = "Le mode de requête '$mode' n'est pas accepté!"; |
trigger_error($e, E_USER_WARNING); |
} else { |
if ($mode == 'GET') { |
$this->traiterUrlParametres(); |
} |
|
$ch = curl_init($this->url); |
curl_setopt($ch, CURLOPT_HEADER, TRUE); |
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); |
|
if($mode == 'POST') curl_setopt($ch, CURLOPT_POST, TRUE); |
elseif($mode == 'PUT') curl_setopt($ch, CURLOPT_PUT, TRUE); |
elseif($mode == 'DELETE') curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE"); |
|
if($donnees) curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($donnees, null, self::HTTP_URL_REQUETE_SEPARATEUR)); |
|
// curl_setopt($ch, CURLOPT_COOKIE, "XDEBUG_PROFILE"); // debug |
$flux = curl_exec($ch); |
curl_close($ch); |
|
if (!$flux) { |
$this->reponse_entetes = $http_response_header; |
$e = "L'ouverture de l'url '{$this->url}' par la méthode HTTP '$mode' a échoué!"; |
trigger_error($e, E_USER_WARNING); |
} else { |
list($this->reponse_entetes, $contenu) = explode("\r\n\r\n", $flux, 2); |
// XXX: mimic stream_get_meta_data() (ce qui n'est pas très propre, le code appelant ferait mieux de se mettre à jour) |
$this->reponse_entetes = array('wrapper_data' => explode("\r\n", $this->reponse_entetes)); |
} |
$this->traiterEntete(); |
} |
$this->reinitialiser(); |
return $contenu; |
} |
|
public function envoyerRequete($url, $mode, Array $donnees = array()) { |
// debug: error_log("$mode {$this->url}"); |
|
// nous n'activons le wrapper que pour GET pour l'instant |
// car l'utilisation de curl pour les autres modes pourrait |
// vraisemblablement induire des comportements différents. (test-suite needed) |
if(function_exists('curl_init') && $mode == 'GET') { |
return $this->envoyerCurlRequete($url, $mode, $donnees); |
} |
|
$this->url = $url; |
$contenu = false; |
if (! in_array($mode, $this->http_methodes)) { |