Subversion Repositories Applications.framework

Compare Revisions

Ignore whitespace Rev 427 → Rev 428

/trunk/framework/RestClient.php
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)) {