Introduction au Zend Framework

 Apprendre Zend Framework

appendix

 Guide de référence Zend Framework


  •  Zend_Gdata
  •  Zend_Http
  •  Zend_InfoCard
  •  Zend_Json
  •  Zend_Layout
  •  Zend_Ldap
  •  Zend_Loader
  •  Zend_Locale
  •  Zend_Log
  •  Zend_Mail
  •  Zend_Markup
  •  Zend_Measure
  •  Zend_Memory
  •  Zend_Mime
  •  Zend_Navigation
  •  Zend_Oauth
  •  Zend_OpenId
  •  Zend_Paginator
  •  Zend_Pdf
  •  Zend_ProgressBar
  •  Zend_Queue
  •  Zend_Reflection
  •  Zend_Registry
  •  Zend_Rest

  •  Zend_Search_Lucene
  •  Zend_Serializer
  •  Zend_Server
  •  Zend_Service
  •  Zend_Session
  •  Zend_Soap
  •  Zend_Tag
  •  Zend_Test
  •  Zend_Text
  •  Zend_TimeSync
  •  Zend_Tool
  •  Zend_Tool_Framework
  •  Zend_Tool_Project
  •  Zend_Translate
  •  Zend_Uri
  •  Zend_Validate
  •  Zend_Version
  •  Zend_View
  •  Zend_Wildfire
  •  Zend_XmlRpc
  • ZendX_Console_Process_Unix
  • ZendX_JQuery
  • Translation 61.2% Update 2010-11-28 - Revision 23149 - Version ZF 1.11.x

    Chapitre 37. Zend_Http

    Table des matières

    37.1. Introduction
    37.1.1. Utilisation de Zend_Http_Client
    37.1.2. Les paramètres de configuration
    37.1.3. Utilisation basique
    37.1.4. Ajouts de paramètres GET et POST
    37.1.5. Accéder à la dernière requête, ou réponse
    37.2. Zend_Http_Client - Utilisation avancée
    37.2.1. Redirections HTTP
    37.2.2. Ajout de cookies et gestion de leur persistance
    37.2.3. Définir des en-têtes personnalisés
    37.2.4. Envoi de fichiers
    37.2.5. Envoyer des données brutes via POST
    37.2.6. Authentification HTTP
    37.2.7. Envoyer plusieurs requêtes avec le même client
    37.2.8. Data Streaming
    37.3. Zend_Http_Client - Adaptateurs de connexion
    37.3.1. Présentation globale
    37.3.2. Adaptateur Socket
    37.3.2.1. Customizing and accessing the Socket adapter stream context
    37.3.3. Adaptateur Proxy
    37.3.4. The cURL Adapter
    37.3.5. Adaptateur Test
    37.3.6. Créer vos propres adaptateurs de connexion
    37.4. Zend_Http_Cookie and Zend_Http_CookieJar
    37.4.1. Introduction
    37.4.2. Instancier des objets Zend_Http_Cookie
    37.4.3. Zend_Http_Cookie méthodes getter
    37.4.4. Zend_Http_Cookie: Correspondance de scénario
    37.4.5. Classe Zend_Http_CookieJar : Instanciation
    37.4.6. Ajouter des cookies à un objet Zend_Http_CookieJar
    37.4.7. Récupérer les cookies présents dans un objet Zend_Http_CookieJar
    37.5. Zend_Http_Response
    37.5.1. Introduction
    37.5.2. Méthodes de tests booléennes
    37.5.3. Méthodes accesseurs
    37.5.4. Analyseurs statiques de réponse HTTP
    37.6. Zend_Http_UserAgent
    37.6.1. Overview
    37.6.2. Quick Start
    37.6.3. Configuration Options
    37.6.4. Available Methods
    37.6.5. Examples
    37.7. The UserAgent Device Interface
    37.7.1. Overview
    37.7.2. Quick Start
    37.7.3. Configuration Options
    37.7.4. Available Methods
    37.7.5. Examples
    37.8. The UserAgent Features Adapter
    37.8.1. Overview
    37.8.2. Quick Start
    37.8.3. Configuration Options
    37.8.4. Available Methods
    37.9. The WURFL UserAgent Features Adapter
    37.9.1. Overview
    37.9.2. Quick Start
    37.9.3. Configuration Options
    37.9.4. Available Methods
    37.10. The DeviceAtlas UserAgent Features Adapter
    37.10.1. Overview
    37.10.2. Quick Start
    37.10.3. Configuration Options
    37.10.4. Available Methods
    37.11. The TeraWurfl UserAgent Features Adapter
    37.11.1. Overview
    37.11.2. Quick Start
    37.11.3. Configuration Options
    37.11.4. Available Methods
    37.12. The UserAgent Storage Interface
    37.12.1. Overview
    37.12.2. Quick Start
    37.12.3. Configuration Options
    37.12.4. Available Methods
    37.13. The Session UserAgent Storage Adapter
    37.13.1. Overview
    37.13.2. Quick Start
    37.13.3. Configuration Options
    37.13.4. Available Methods

    37.1. 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 Section 37.5, « Zend_Http_Response »).

    37.1.1. 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 37.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));

    // 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] 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 Section 74.1.4.1, « Autoriser les caractères "imprudents" dans les URIs » pour de plus amples informations.

    37.1.2. 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.

    Tableau 37.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 37.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 37.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
    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


    37.1.3. 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 37.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 [6]. 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 37.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();


    37.1.4. 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 37.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 37.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(453280)
    ));


    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.

    37.1.5. 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.

    digg delicious meneame google twitter technorati facebook

    Comments

    Loading...