Programmer's Reference Guide
| Zend_Http |
Introduction
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 Zend_Http_Response).
Utilisation de Zend_Http_Client
Le constructeur de classe accepte deux paramètres : l'URI (ou un objet
Zend_Uri_Http), et un tableau ou un objet Zend_Config
d'options de configuration. Ils peuvent aussi être définis avec des méthodes plus tard :
setUri() et setConfig().
Exemple #1 Instanciation d'un objet Zend_Http_Client
- 'maxredirects' => 0,
- 'timeout' => 30));
- // OU
- $client = new Zend_Http_Client();
- $client->setUri('http://example.org');
- 'maxredirects' => 0,
- 'timeout' => 30));
- // You can also use a Zend_Config object to set the client's configuration
- $config = new Zend_Config_Ini('httpclient.ini, 'secure');
- $client->setConfig($config);
Note: Zend_Http_Client utilise Zend_Uri_Http pour valider les URLs. Ce qui veut dire que certains caractères comme les pipes ("|") ou le symbole "^" ne seront pas acceptés par défaut dans les URLs. Ceci peut être modifié par le réglage de l'option "allow_unwise" de Zend_Uri à TRUE. Voir Autoriser les caractères "imprudents" dans les URIs pour de plus amples informations.
Les paramètres de configuration
Le constructeur et setConfig() acceptent un tableau associatif de paramètre de configuration, ou un objet Zend_Config. Fixer ces paramètres est optionnel, ils ont tous une valeur par défaut.
| 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 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 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 |
| encodecookies | Whether to pass the cookie value through urlencode/urldecode. Enabling this breaks support with some web servers. Disabling this limits the range of values the cookies can contain. | boolean | TRUE |
Utilisation basique
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 #2 Requête GET simple
- $client = new Zend_Http_Client('http://example.org');
- $response = $client->request();
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 #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();
Ajouts de paramètres GET et POST
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 #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
- '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().
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.Accéder à la dernière requête, ou réponse
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.
| Zend_Http |
Add A Comment
Please do not report issues via comments; use the ZF Issue Tracker.
If you have a JIRA/Crowd account, we suggest you login first before commenting.
Select a Version
Languages Available
Components
Search the Manual
Navigation
- Guide de référence du programmeur
- Guide de référence du programmeur
- Guide de référence Zend Framework
- Zend_Http
- Introduction
- Zend_Http_Client - Utilisation avancée
- Zend_Http_Client - Adaptateurs de connexion
- Zend_Http_Cookie and Zend_Http_CookieJar
- Zend_Http_Response
- Zend_Http_UserAgent
- The UserAgent Device Interface
- The UserAgent Features Adapter
- The WURFL UserAgent Features Adapter
- The DeviceAtlas UserAgent Features Adapter
- The TeraWurfl UserAgent Features Adapter
- The UserAgent Storage Interface
- The Session UserAgent Storage Adapter

Comments
12. // You can also use a Zend_Config object to set the client's configuration
13 .$config = new Zend_Config_Ini('httpclient.ini, 'secure');
14. $client->setConfig($config);
There should be a ' at after the first parameter on line 13
'first_name' => 'Bender',
'middle_name' => 'Bending'
'made_in' => 'Mexico',
));
There should be a comma after 'Bending', 'Mexico' could loose the comma.
$client->request('GET');
if ($client->getLastResponse()->isSuccessful()) {
$response = $client->getLastResponse()->getBody();
}
then this:
$response = $client->request('GET');
This is because the client may choose to use gz encoding but yet will not uncompress it directly (instead you must use the response object to uncompress it)
Thank you so much, I would have been going round the bend trying to get it to work without that.
Cheers