- Inscription
- 18 Octobre 2012
- Messages
- 1 278
- Réactions
- 1 187
- Points
- 23 400
Bonjour à tous , aujourd'hui on se retrouve pour un nouveau tutoriel durant lequel je vais vous expliquer les différentes possibilités du client Zend Framework.
Dans chaque bout, j'estimerai que le client Zend Framework est déjà inclut dans le fichier PHP
PHP:
// première méthode
$client = new Zend_Http_Client('https://reality-gaming.fr');
// seconde méthode
$client = new Zend_Http_Client();
$client->setUri('https://reality-gaming.fr');
La configuration compte au total 12 paramètres, que voici:
- maxredirects -> Nombre maximum de redirections à suivre. Par défaut: 5
- strictredirects -> Si le client doit strictement suivre les RFC (Request For Comments) en redirigeant. Par défaut: false
- useragent -> L'agent d'utilisateur envoyé dans les headers lors d'une requête. Par défaut: Zend_Http_Client
- timeout -> Délai d'expiration de la connexion au serveur ciblé (donné en secondes). Par défaut: 10
- adapter -> La class de l'adaptateur de connexion à utiliser. Par défaut: Zend_Http_Client_Adapter_Socket
- httpversion -> La version du protocole HTTP. Par défaut: 1.1 (self::HTTP_1)
- keepalive -> Si le client doit garder une connexion active avec le serveur ciblé. Par défaut: false
- storeresponse -> Indique s'il faut stocker la dernière réponse du serveur pour pouvoir la récupérer plus tard. Par défaut: true
- strict -> Indique s'il faut exécuter une validation sur le nom des headers. Par défaut: true
- encodecookies -> Indique s'il faut passer les valeurs des cookies en utilisant les fonctions PHP urldecode() / urlencode(). Par défaut: true
- output_stream -> La destination de transmission des données reçues. Par défaut: false
- rfc3986_strict -> Indique s'il faut adhérer au RFC 3986 (remplacement des '+' par des '%20'). Par défaut: false
PHP:
// le client est déjà initialisé
$client->setConfig(array(
'timeout' => 20, // 20 secondes
'keepalive' => true, // on garde la connexion active
'useragent' => 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36',
// etc...
));
PHP:
// le client est déjà initialisé
$client->setHeaders(array(
'Accept' => '*/*',
'Content-Type' => 'application/x-www-form-urlencoded',
'Referer' => 'https://reality-gaming.fr',
'User-Agent' => 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36',
// etc...
));
Requête POST
PHP:
// le client est déjà initialisé
$client->setParameterPost(array(
'message' => 'Bonjour',
'data' => '{"data":{"money":140,"level":12,"site":"RealityGaming"}}',
// etc...
));
$request = $client->request('POST'); // on envoi la requête POST avec les paramètres
$response = $request->getBody(); // on récupère le contenu de la réponse envoyée par le serveur ciblé
Requête GET
PHP:
// le client est déjà initialisé
$client->setParameterGet(array(
'message' => 'Bonjour',
'data' => '{"data":{"money":140,"level":12,"site":"RealityGaming"}}',
// etc...
));
$request = $client->request('GET'); // on envoi la requête GET avec les paramètres
$response = $request->getBody(); // on récupère le contenu de la réponse envoyée par le serveur ciblé
PHP:
// le client est déjà initialisé
$client->setAuth('username', 'password');
PHP:
// le client est déjà initialisé
$client->setCookie(array(
'gold' => 58,
'connected' => true,
'message' => 'RealityGaming',
// etc...
));
PHP:
// le client est déjà initialisé
$client->setCookieJar();
Premièrement, la fonction permettant d'envoyer des des fichiers est définie comme telle
PHP:
public function setFileUpload($filename, $formname, $data = null, $ctype = null)
Démontrons tout ça en exemple.
PHP:
// le client est déjà initialisé
// ici, on utilise ce que j'ai dis juste au-dessus
$texte = 'Du texte ... !';
$client->setFileUpload('fichier.txt', 'file', $texte, 'text/plain');
// fichier existant
$client->setFileUpload('fichier.xml', 'XMLFile');
Le serveur va donc récupérer cette information grâce à $_FILES['file'] (dans le premier exemple) et $_FILES['XMLFile'] dans le second exemple.
- Zend_Http_Client_Adapter_Socket (celui par défaut)
- Zend_Http_Client_Adapter_Proxy
- Zend_Http_Client_Adapter_Curl
- Zend_Http_Client_Adapter_Test
Zend_Http_Client_Adapter_Socket
Paramètres de configurations:
- persistent -> Indique s'il faut utiliser des connexions TCP persistantes. Par défaut: false
- ssltransport -> La couche du transport de la connexion. Par défaut: ssl
- sslcert -> Routage d'un certificat SSL encodé PEM. Par défaut: null
- sslpassphrase -> Phrase de passe pour le fichier du certificat SSL. Par défaut: null
- sslverifypeer -> Indique s'il faut vérifier le certificat SSL. Par défaut: true
- sslcapath -> Chemin du dossier du certificat SSL. Par défaut: null
- sslallowselfsigned -> Indique s'il faut accepter les certificats auto-signés. Par défaut: false
- sslusecontext -> Active les connexions proxy pour utiliser SSL même si le proxy en lui-même ne l'autorise pas. Par défaut: false
PHP:
$client = new Zend_Http_Client();
$client->setUri('https://reality-gaming.fr');
$client->setConfig(array(
'adapter' => 'Zend_Http_Client_Adapter_Socket',
'sslusecontext' => true,
// etc...
));
// suite ...
Zend_Http_Client_Adapter_Proxy
Paramètres de configurations:
Zend_Http_Client_Adapter_Curl- proxy_host -> Adresse du serveur proxy
- proxy_port -> Port du serveur proxy. Par défaut: 8080
- proxy_user -> Nom d'utilisateur pour se connecter au proxy (si requis)
- proxy_pass -> Mot de passe pour se connecter au proxy (si requis)
PHP:
$client = new Zend_Http_Client();
$client->setUri('https://reality-gaming.fr');
$client->setConfig(array(
'adapter' => 'Zend_Http_Client_Adapter_Proxy',
'proxy_host' => 'proxy.reality-gaming.fr',
'proxy_port' => 845,
'proxy_user' => 'Walky.RG',
'proxy_pass' => 'SuperPassword'
));
// suite ...
Cet adaptateur ne contient pas vraiment de paramètres de configurations liés à Zend étant donné que c'est cURL qui gère le tout.
Nous allons donc directement passer à l'exemple.
Je n'expliquerai pas le dernier adaptateur, car je n'en vois pas l'utilité et que beaucoup de choses peuvent déjà être faites avec les autres.Nous allons donc directement passer à l'exemple.
PHP:
$client = new Zend_Http_Client();
$client->setUri('https://reality-gaming.fr');
$client->setConfig(array(
'adapter' => 'Zend_Http_Client_Adapter_Curl',
'curloptions' => array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_VERBOSE => true
// etc ...
)
));
// suite ...
PHP:
// client initialisé + requête envoyée
$client->getUri(); // récupère le lien où la requête a été envoyée
$client->getHeaders(); // récupère les headers de la réponse HTTP
$client->getRedirectionsCount(); // récupère le nombre de redirections que le client a effectué
$client->getCookieJar(); // récupère le cookie jar actuel
$client->getLastRequest(); // récupère la dernière requête HTTP, en tant que texte
$client->getLastResponse(); // récupère la dernière réponse HTTP reçue par le client
$client->getAdapter(); // récupère l'adaptateur utilisé
$client->getStream(); // récupère le statut de transmission pour les données reçues
$client->getBody(); // récupère le contenu de la réponse, en tant que texte
$client->getVersion(); // récupère la version HTTP de la réponse
$client->getStatus(); // récupère le statut du code de la réponse HTTP
$client->getMessage(); // récupère un message décrivant le code de la réponse HTTP
Walky