21-11-2009, 05:14 PM
(Modification du message : 21-11-2009, 05:41 PM par DragonMaster.)
Salut, beaucoup d'entre vous savent que je travaille sur un service RESTfull mais php ne l'étant pas à la base, je me heurt à quelques difficultés que je dois résoudre d'ici la fin de la journée.
En fait en théorie mon service fonctionne très bien, je n'arrive simplement pas à le tester avec de vraies requete HTTP. Bon pour le get c'est très simple, suffit de demander une page avec sont lien. Mais pour POST et PUT par exemple je n'arrive pas à entrer le corps de la requête.
Voici un bout de code qui va vous éclairer:
En fait en théorie mon service fonctionne très bien, je n'arrive simplement pas à le tester avec de vraies requete HTTP. Bon pour le get c'est très simple, suffit de demander une page avec sont lien. Mais pour POST et PUT par exemple je n'arrive pas à entrer le corps de la requête.
Voici un bout de code qui va vous éclairer:
Code PHP :
<?php
//On vérifie toutes les variables
$method = new Securite($_SERVER['REQUEST_METHOD']);
$method = $method->getChaine();
$URI = new Securite($_SERVER['REQUEST_URI']);
$URI = $URI->getChaine();
$Content= new Securite($_SERVER['QUERY_STRING']);
$Content= $Content->getChaine();
$gestionnaire = new GestionProjet($URI, $Content);
switch($method)
{
case 'POST':$code=$gestionnaire->nouveauProjet();
$code->getHTMLValideError();
break;
case 'PUT': $code=$gestionnaire->updateProjet();
$code->getHTMLValideError();
break;
case 'GET': $code=$gestionnaire->getProjet();
$code->getHTMLValideError();
break;
case 'DELETE':$code=$gestionnaire->deleteProjet();
$code->getHTMLValideError();
break;
}
?>
En gros je dois insérer dans QUERY_STRING l'adresse de l'image pour POST et PUT...J'utilise Curl de cette manière, mais je vois très bien que mon contenu ne va pas au bon endroit:
Code PHP :
<?php
$rCurl = curl_init();
curl_setopt ($rCurl, CURLOPT_URL, "http://sunensweb.uqac.ca/~ex18004/acespce/monprojet");
curl_setopt ($rCurl, CURLOPT_HEADER, false);
curl_setopt ($rCurl, CURLOPT_POST, true);
curl_setopt ($rCurl, CURLOPT_POSTFIELDS, 'http://upload.wikimedia.org/wikipedia/commons/thumb/c/c3/Petite_couronne.png/120px-Petite_couronne.png');
curl_setopt ($rCurl, CURLOPT_RETURNTRANSFER, true);
$iResult = curl_exec ($rCurl);
curl_close ($rCurl);
echo '<p>Valeur retournée : ', $iResult, '</p>';