15 avril 2003

Accéder à une URL ou simuler une requête HTTP en PHP

Il est parfois nécessaire d'accéder à une URL distante ou même à un formulaire distant.
On peut dans le cas d'une page statique, se contenter de la fonction PHP "fopen". Mais celle-ci devient vite limitée si on doit passer par un proxy ou si on doit utiliser des paramètres.

Pour résoudre ce problème, inutile de chercher bien loin la librairie PEAR contient tout ce qu'il faut !

Voici 2 exemples d'accès à un formulaire à travers un proxy :

Avec une méthode GET :


require_once('HTTP/Request.php');

req = &new HTTP_Request('http://pear.php.net:80/package-search.php');
$req->setMethod(HTTP_REQUEST_METHOD_GET);
$req->setProxy('proxy.exemple.fr', '3127');
$req->addRawQueryString('pkg_name=http&bool=AND&submit=Search');
$req->sendRequest();

echo "<h1>Code retour : ". $req->getResponseCode()."</h1>";
echo $req->getResponseBody();
?>

Avec une méthode POST :


require_once('HTTP/Request.php');

$req = &new HTTP_Request('http://exemple.com:56665/cgi-bin/moncgi');
$req->setMethod(HTTP_REQUEST_METHOD_POST);
$req->setProxy('proxy.exemple.fr', '3127');
$req->addPostData('param1', 'nicolas');
$req->addPostData('param2', 'et');
$req->addPostData('param3', 'touv');
$req->sendRequest();

echo "<h1>Code retour : ". $req->getResponseCode()."</h1>";
echo $req->getResponseBody();

Aucun commentaire:

Enregistrer un commentaire