File: Zend_Http_Client.xml

package info (click to toggle)
zendframework 1.12.9%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 133,584 kB
  • sloc: xml: 1,311,829; php: 570,173; sh: 170; makefile: 125; sql: 121
file content (276 lines) | stat: -rw-r--r-- 13,406 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 21826 -->
<!-- Reviewed: no -->
<sect1 id="zend.http.client">
    <title>Introduction</title>

    <para>
        <classname>Zend_Http_Client</classname> fournit une interface qui permet d'utiliser le
        protocole <acronym>HTTP</acronym> (Hyper-Text Transfer Protocol). <classname>Zend_Http_Client</classname>
        supporte les fonctionnalités de base d'un client <acronym>HTTP</acronym>, 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 <acronym>HTTP</acronym> (voyez <xref linkend="zend.http.response" />).
    </para>

    <sect2 id="zend.http.client.introduction">
        <title>Utilisation de Zend_Http_Client</title>

        <para>
            Le constructeur de classe accepte deux paramètres : l'URI (ou un objet
            <code><classname>Zend_Uri_Http</classname></code>), et un tableau ou un objet Zend_Config
            d'options de configuration. Ils peuvent aussi être définis avec des méthodes plus tard :
            <methodname>setUri()</methodname> et <methodname>setConfig()</methodname>.
            <example id="zend.http.client.introduction.example-1">
                    <title>Instanciation d'un objet Zend_Http_Client</title>

                    <programlisting language="php"><![CDATA[
$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);
]]></programlisting>
                </example>
            </para>

        <note>
            <para>
                <classname>Zend_Http_Client</classname> utilise
                <classname>Zend_Uri_Http</classname> pour valider les <acronym>URL</acronym>s. Ce qui veut dire que
                certains caractères comme les pipes ("|") ou le symbole "^" ne seront pas acceptés
                par défaut dans les <acronym>URL</acronym>s. Ceci peut être modifié par le réglage de l'option
                "allow_unwise" de <classname>Zend_Uri</classname> à <constant>TRUE</constant>. Voir <xref
                linkend="zend.uri.validation.allowunwise" /> pour de plus amples
                informations.
            </para>
        </note>
    </sect2>

    <sect2 id="zend.http.client.configuration">
        <title>Les paramètres de configuration</title>

        <para>
            Le constructeur et <methodname>setConfig()</methodname> 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.
                <table id="zend.http.client.configuration.table">
                    <title>Zend_Http_Client : paramètres de configuration</title>

                    <tgroup cols="4">
                        <thead>
                            <row>
                                <entry>Paramètre</entry>
                                <entry>Description</entry>
                                <entry>Valeur attendue</entry>
                                <entry>Valeur par défaut</entry>
                            </row>
                        </thead>

                        <tbody>
                            <row>
                                <entry>maxredirects</entry>
                                <entry>Nombre maximum de redirections à suivre (0 = aucune)</entry>
                                <entry>entier</entry>
                                <entry>5</entry>
                            </row>

                            <row>
                                <entry>strict</entry>
                                <entry>Validation faite ou non sur les noms d'en-têtes. Si à
                                <constant>FALSE</constant>, des fonctions de validation n'interviendront
                                pas. Habituellement ceci ne devrait pas être changé</entry>
                                <entry>booléen</entry>
                                <entry><constant>TRUE</constant></entry>
                            </row>

                            <row>
                                <entry>strictredirects</entry>
                                <entry>Est ce que le client doit suivre strictement les redirections
                                selon la <constant>RFC2616</constant> ? (voyez <xref
                                linkend="zend.http.client.redirections" />)</entry>
                                <entry>booléen</entry>
                                <entry><constant>FALSE</constant></entry>
                            </row>

                            <row>
                                <entry>useragent</entry>
                                <entry>La chaîne User Agent du client (envoyée en en-tête de
                                requête)</entry>
                                <entry>chaîne</entry>
                                <entry>'Zend_Http_Client'</entry>
                            </row>

                            <row>
                                <entry>timeout</entry>
                                <entry>Connexion timeout (secondes)</entry>
                                <entry>entier</entry>
                                <entry>10</entry>
                            </row>

                            <row>
                                <entry>httpversion</entry>
                                <entry>Version du protocole <acronym>HTTP</acronym> à utiliser ('1.1', '1.0' ou
                                '0.9')</entry>
                                <entry>chaîne</entry>
                                <entry>'1.1'</entry>
                            </row>

                            <row>
                                <entry>adapter</entry>
                                <entry>Classe adaptateur à utiliser (voyez <xref
                                linkend="zend.http.client.adapters" />)</entry>
                                <entry>mixed</entry>
                                <entry>'Zend_Http_Client_Adapter_Socket'</entry>
                            </row>

                            <row>
                                <entry>keepalive</entry>
                                <entry>Utilisation du pipelining <acronym>HTTP</acronym> (connexion ouverte après
                                déconnexion du client)</entry>
                                <entry>booléen</entry>
                                <entry><constant>FALSE</constant></entry>
                            </row>

                            <row>
                                <entry>storeresponse</entry>
                                <entry>Stockage ou non de la dernière réponse pour une récupération
                                ultérieure avec <methodname>getLastResponse()</methodname>. Si réglez à
                                <constant>FALSE</constant>, <methodname>getLastResponse()</methodname> retournera
                                <constant>NULL</constant>.</entry>
                                <entry>booléen</entry>
                                <entry><constant>TRUE</constant></entry>
                            </row>

                            <row>
                                <entry>encodecookies</entry>
                                <entry>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.</entry>
                                <entry>boolean</entry>
                                <entry><constant>TRUE</constant></entry>
                            </row>
                        </tbody>
                    </tgroup>
                </table>
            </para>
    </sect2>

    <sect2 id="zend.http.client.basic-requests">
        <title>Utilisation basique</title>

        <para>
            Exécuter des requêtes HTTP basiques est très simple grâce à la méthode
            <methodname>request()</methodname>, et ceci nécessite rarement plus d'une ligne de code : <example
                    id="zend.http.client.basic-requests.example-1">
                    <title>Requête GET simple</title>

                    <programlisting language="php"><![CDATA[
$client = new Zend_Http_Client('http://example.org');
$response = $client->request();
]]></programlisting>
                </example> La méthode <methodname>request()</methodname> 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 <footnote>
                <para>
                    Voyez la RFC 2616 - <ulink
                    url="http://www.w3.org/Protocols/rfc2616/rfc2616.html"></ulink>.
                </para>
            </footnote>. Ces méthodes HTTP sont aussi définies en tant que constantes de classe,
            Zend_Http_Request::GET, Zend_Http_Request::POST, etc...
        </para>

        <para>
            Si aucune méthode de requêtage HTTP n'est définie, alors la dernière utilisée via
            <methodname>setMethod()</methodname> sera utilisée. Si <methodname>setMethod()</methodname> n'a jamais été
            appelée, GET est alors utilisée par défaut. <example
                    id="zend.http.client.basic-requests.example-2">
                    <title>Requêtes d'autres types que GET</title>

                    <programlisting language="php"><![CDATA[
// requête POST
$response = $client->request('POST');

// autre manière de faire :
$client->setMethod(Zend_Http_Client::POST);
$response = $client->request();
]]></programlisting>
                </example>
            </para>
    </sect2>

    <sect2 id="zend.http.client.parameters">
        <title>Ajouts de paramètres GET et POST</title>

        <para>
            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
            <methodname>setParameterGet()</methodname>. 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é. <example
                    id="zend.http.client.parameters.example-1">
                    <title>Ajouts de paramètres GET</title>

                    <programlisting language="php"><![CDATA[
// 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',
));
]]></programlisting>
                </example>
            </para>

        <para>
            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 <methodname>setParameterPost()</methodname> de la même manière que sa soeur
            <methodname>setParameterGet()</methodname>. <example id="zend.http.client.parameters.example-2">
                    <title>Ajout de paramètres POST</title>

                    <programlisting language="php"><![CDATA[
// 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)
));
]]></programlisting>
                </example> 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.
        </para>
    </sect2>

    <sect2 id="zend.http.client.accessing_last">
        <title>Accéder à la dernière requête, ou réponse</title>

        <para>
            <classname>Zend_Http_Client</classname> 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.
            <classname>Zend_Http_Client-&gt;getLastRequest()</classname> ne prends pas de paramètres
            et retourne la dernière requête sous forme de chaîne de caractères.
            <classname>Zend_Http_Client-&gt;getLastResponse()</classname> retourne elle la dernière
            réponse, mais sous forme d'objet <link
            linkend="zend.http.response">Zend_Http_Response</link>.
        </para>
    </sect2>
</sect1>