Programmer's Reference Guide
Table des matières
- 25.1. Introduction
- 25.2. Zend_Http_Client - Utilisation avancée
- 25.3. Zend_Http_Client - Adaptateurs de connexion
- 25.4. Zend_Http_Cookie and Zend_Http_CookieJar
- 25.4.1. Introduction
- 25.4.2. Instancier des objets Zend_Http_Cookie
- 25.4.3. Zend_Http_Cookie méthodes getter
- 25.4.4. Zend_Http_Cookie: Correspondance de scénario
- 25.4.5. Classe Zend_Http_CookieJar : Instanciation
- 25.4.6. Ajouter des cookies à un objet Zend_Http_CookieJar
- 25.4.7. Récupérer les cookies présents dans un objet Zend_Http_CookieJar
- 25.5. Zend_Http_Response
Zend_Http_Client fournit une interface qui permet d'utiliser le
protocole HTTP (Hyper-Text Transfer Protocol). Zend_Http_Client
supporte les fonctionnalités de base d'un client HTTP, ainsi que des fonctionnalités plus
avancées, comme l'authentification ou l'upload de fichiers. Toutes les requêtes retournent
un objet Zend_Http_Response, avec lequel on pourra accéder au corps ou aux en-têtes de la
réponse HTTP (voyez Section 25.5, « Zend_Http_Response »).
Le constructeur de classe accepte deux paramètres : l'URI (ou un objet
), et un tableau de configuration. Ils
peuvent aussi être définis avec des méthodes plus tard : Zend_Uri_HttpsetUri() et
setConfig().
Exemple 25.1. Instanciation d'un objet Zend_Http_Client
$client = new Zend_Http_Client('http://example.org', array(
'maxredirects' => 0,
'timeout' => 30));
// OU
$client = new Zend_Http_Client();
$client->setUri('http://example.org');
$client->setConfig(array(
'maxredirects' => 0,
'timeout' => 30));
![]() |
Note |
|---|---|
|
Le constructeur et setConfig() acceptent un tableau associatif de
paramètre de configuration. Fixer ces paramètres est optionnel, ils ont tous une valeur
par défaut.
Tableau 25.1. Zend_Http_Client : paramètres de configuration
| Paramètre | Description | Valeur attendue | Valeur par défaut |
|---|---|---|---|
| maxredirects | Nombre maximum de redirections à suivre (0 = aucune) | entier | 5 |
| strict | Validation faite ou non sur les noms d'en-têtes. Si à
false, des fonctions de validation n'interviendront
pas. Habituellement ceci ne devrait pas être changé |
booléen | true |
| strictredirects | Est ce que le client doit suivre strictement les redirections selon la RFC2616 ? (voyez Section 25.2.1, « Redirections HTTP ») | booléen | false |
| useragent | La chaîne User Agent du client (envoyée en en-tête de requête) | chaîne | 'Zend_Http_Client' |
| timeout | Connexion timeout (secondes) | entier | 10 |
| httpversion | Version du protocole HTTP à utiliser ('1.1', '1.0' ou '0.9') | chaîne | '1.1' |
| adapter | Classe adaptateur à utiliser (voyez Section 25.3, « Zend_Http_Client - Adaptateurs de connexion ») | mixed | 'Zend_Http_Client_Adapter_Socket' |
| keepalive | Utilisation du pipelining HTTP (connexion ouverte après déconnexion du client) | booléen | false |
| storeresponse | Stockage ou non de la dernière réponse pour une récupération
ultérieure avec getLastResponse(). Si réglez à
false, getLastResponse() retournera
null. |
booléen | true |
Exécuter des requêtes HTTP basiques est très simple grâce à la méthode
request(), et ceci nécessite rarement plus d'une ligne de code :
Exemple 25.2. Requête GET simple
$client = new Zend_Http_Client('http://example.org');
$response = $client->request();
La méthode request() accepte un paramètre optionnel
définissant la méthode HTTP, - GET, POST, PUT, HEAD, DELETE, TRACE, OPTIONS ou CONNECT -
comme définies dans la RFC 2616 concernant le protocole HTTP [1]. Ces méthodes HTTP sont aussi définies en tant que constantes de classe,
Zend_Http_Request::GET, Zend_Http_Request::POST, etc...
Si aucune méthode de requêtage HTTP n'est définie, alors la dernière utilisée via
setMethod() sera utilisée. Si setMethod() n'a jamais été
appelée, GET est alors utilisée par défaut.
Exemple 25.3. Requêtes d'autres types que GET
// requête POST
$response = $client->request('POST');
// autre manière de faire :
$client->setMethod(Zend_Http_Client::POST);
$response = $client->request();
Ajouter des paramètres GET à la requête HTTP est très simple. Vous pouvez les
ajouter en tant que partie de l'URL désirée, ou en utilisant la méthode
setParameterGet(). Celle-ci prend en premier paramètre le nom du paramètre
GET, et en second sa valeur. Un tableau associatif peut aussi être utilisé.
Exemple 25.4. Ajouts de paramètres GET
// Avec la méthode setParameterGet
$client->setParameterGet('knight', 'lancelot');
// Ce qui est équivalent à :
$client->setUri('http://example.com/index.php?knight=lancelot');
// Ajout de plusieurs paramètres en un appel
$client->setParameterGet(array(
'first_name' => 'Bender',
'middle_name' => 'Bending'
'made_in' => 'Mexico',
));
Coté POST, c'est très similaire à GET, sauf que les paramètres POST doivent faire
partie du corps de la requête. Il n'est donc pas possible de les ajouter dans l'URL.
Utilisez simplement setParameterPost() de la même manière que sa soeur
setParameterGet().
Exemple 25.5. Ajout de paramètres POST
// passage de paramètre POST simple
$client->setParameterPost('language', 'fr');
// Plusieurs paramètres, dont un avec plusieurs valeurs
$client->setParameterPost(array(
'language' => 'es',
'country' => 'ar',
'selection' => array(45, 32, 80)
));
Notez qu'en plus de paramètres POST, vous pouvez ajouter des paramètres
GET à une requête POST. Le contraire n'est pas possible, ainsi les paramètres POST
ajoutés à une requête GET seront acceptés certes, mais ignorés.
Zend_Http_Client fournit un moyen d'accéder à la dernière
requête qu'il a effectuée, ainsi qu'à la dernière réponse qu'il a reçue.
Zend_Http_Client->getLastRequest() ne prends pas de paramètres
et retourne la dernière requête sous forme de chaîne de caractères.
Zend_Http_Client->getLastResponse() retourne elle la dernière
réponse, mais sous forme d'objet Zend_Http_Response.
Search the Manual
Components
Languages Available
Translation Status Reports
View the current status report of Zend Framework manual translations.

![[Note]](/images/note.gif)