[ZF-10089] Zend_Log
[zend.git] / documentation / manual / ru / module_specs / Zend_Http_Client.xml
blobed1c6fd5d989bba3919e227a9a0acc4154e09fa6
1 <sect1 id="zend.http.client">
2     <title>Zend_Http_Client - Введение</title>
4     <sect2 id="zend.http.client.introduction">
5         <title>Введение</title>
6         <para>
7             Zend_Http_Client предоставляет простой интерфейс для выполнения
8             HTTP-запросов. Zend_Http_Client поддерживает как большинство простых
9             возможностей, ожидаемых от любого HTTP-клиента, так и более сложные
10             функции, такие, как HTTP-аутентификация и выгрузка файлов. При
11             успешно выполненных запросах (и большинстве неуспешно выполненных)
12             возвращается объект Zend_Http_Response, который предоставляет доступ
13             к заголовкам и телу ответа (см. <xref linkend="zend.http.response" />).
14 <!--
15             Zend_Http_Client provides an easy interface for preforming Hyper-Text
16             Transfer Protocol (HTTP) requests. Zend_Http_Client supports most simple
17             features expected from an HTTP client, as well as some more complex
18             features such as HTTP authentication and file uploads. Successful
19             requests (and most unsuccessful ones too) return a Zend_Http_Response
20             object, which provides access to the response's headers and body (see
21             <xref linkend="zend.http.response" />).
22 -->
23         </para>
24         <para>
25             Конструктор класса опционально принимает URL (может быть строкой или
26             объектом Zend_Uri_Http) и массив конфирурационных параметров. Оба
27             параметра могут быть опущены и установлены позднее через методы
28             <code>setUri()</code> и <code>setConfig()</code>.
29 <!--
30             The class constructor optionally accepts a URL as it's first parameter
31             (can be either a string or a Zend_Uri_Http object), and an optional
32             array of configuration parameters. Both can be left out,
33             and set later using the setUri() and setConfig() methods.
34 -->
35             <example>
36                 <title>Инстанцирование объекта Zend_Http_Client<!--Instantiating a Zend_Http_Client object--></title>
37                 <programlisting language="php">
38 <![CDATA[<?php
39     require_once 'Zend/Http/Client.php';
41     $client = new Zend_Http_Client('http://example.org', array(
42         'maxredirects' => 0,
43         'timeout'      => 30));
45     // Этот код делает то же самое:
46     $client = new Zend_Http_Client();
47     $client->setUri('http://example.org');
48     $client->setConfig(array(
49         'maxredirects' => 0,
50         'timeout'      => 30));
52 ?>]]></programlisting>
53             </example>
54         </para>
55     </sect2>
56     <sect2 id="zend.http.client.configuration">
57         <title>Параметры конфигурации<!--Configuration Parameters--></title>
58         <para>
59             Конструктор и метод <code>setConfig()</code> принимают ассоциативный
60             массив параметров конфигурации. Установка этих параметров является
61             опциональной, поскольку все они имеют значения по умолчанию.
62 <!--
63             The constructor and setConfig() method accept an associative array
64             of configuration parameters. Setting these parameters is optional,
65             as they all have default values.
66 -->
67             <table>
68                 <title>Параметры конфигурации Zend_Http_Client<!--Zend_Http_Client configuration parameters--></title>
69                 <tgroup cols="4">
70                     <thead>
71                         <row>
72                             <entry>Параметр</entry>
73                             <entry>Описание</entry>
74                             <entry>Тип</entry>
75                             <entry>Значение по умолчанию</entry>
76                         </row>
77                     </thead>
78                     <tbody>
79                         <row>
80                             <entry>maxredirects</entry>
81                             <entry>
82                                 Максимальное количество последующих
83                                 перенаправлений (0 = ни одного перенаправления)
84 <!--
85                                 Maximum number of redirections to follow (0 = none)
86 -->
87                             </entry>
88                             <entry>integer</entry>
89                             <entry>5</entry>
90                         </row>
91                         <row>
92                             <entry>strictredirects</entry>
93                             <entry>
94                                 Строгое следование спецификации RFC при
95                                 перенаправлениях (см. <xref linkend="zend.http.client.redirections" />)
96 <!--
97                                 Whether to strictly follow the RFC when redirecting (see <xref linkend="zend.http.client.redirections" />)
98 -->
99                             </entry>
100                             <entry>boolean</entry>
101                             <entry>false</entry>
102                         </row>
103                         <row>
104                             <entry>useragent</entry>
105                             <entry>
106                                 Идентификатор агента пользователя (отправляется
107                                 в заголовке запроса)
108 <!--
109                                 User agent identifier string (sent in request headers)
111                             </entry>
112                             <entry>string</entry>
113                             <entry>'Zend_Http_Client'</entry>
114                         </row>
115                         <row>
116                             <entry>timeout</entry>
117                             <entry>
118                                 Таймаут соединения в секундах
119 <!--
120                                 Connection timeout (seconds)
122                             </entry>
123                             <entry>integer</entry>
124                             <entry>10</entry>
125                         </row>
126                         <row>
127                             <entry>httpversion</entry>
128                             <entry>
129                                 Версия протокола HTTP
130 <!--
131                                 HTTP protocol version
133                             </entry>
134                             <entry>float (1.1 or 1.0)</entry>
135                             <entry>1.1</entry>
136                         </row>
137                         <row>
138                             <entry>adapter</entry>
139                             <entry>
140                                 Используемый класс адаптера соединения
141                                 (см. <xref linkend="zend.http.client.adapters" />)
142 <!--
143                                 Connection adapter class to use (see <xref linkend="zend.http.client.adapters" />)
145                             </entry>
146                             <entry>mixed</entry>
147                             <entry>'Zend_Http_Client_Adapter_Socket'</entry>
148                         </row>
149                         <row>
150                             <entry>keepalive</entry>
151                             <entry>
152                                 Включение поддержки соединения keep-alive с
153                                 сервером. Может быть полезно и повышает
154                                 поизводительность, если выполняется несколько
155                                 последовательных запросов к одному и тому же
156                                 серверу.
157 <!--
158                                 Whether to enable keep-alive connections with the server. Useful and might improve performance if several consecutive requests to the same server are performned.
160                             </entry>
161                             <entry>boolean</entry>
162                             <entry>false</entry>
163                         </row>
164                     </tbody>
165                 </tgroup>
166             </table>
167         </para>
168     </sect2>
169     <sect2 id="zend.http.client.basic-requests">
170         <title>Выполнение базовых HTTP-запросов<!--Performing Basic HTTP Requests--></title>
171         <para>
172             Выполнение простых HTTP-запросов с использованием метода
173             <code>request()</code> довольно простое, и редко требуется больше
174             кода, чем в эти три строчки:
175 <!--
177             Performing simple HTTP requests is very easily done using the
178             request() method, and rarely needs more than three lines of code:
180             <example>
181                 <title>Выполнение простого запроса GET<!--Preforming a Simple GET Request--></title>
182                 <programlisting language="php">
183 <![CDATA[<?php
184     require_once 'Zend/Http/Client.php';
186     $client = new Zend_Http_Client('http://example.org');
187     $response = $client->request();
188 ?>]]></programlisting>
189             </example>
190             Метод <code>request()</code> принимает один необязательный параметр
191             - метод запроса. Это могут быть методы GET, POST, PUT, HEAD, DELETE,
192             TRACE, OPTIONS или CONNECT, определенные в протоколе HTTP.
193 <!--
194             The request() method takes one optional parameter - the request method.
195             This can be either GET, POST, PUT, HEAD, DELETE, TRACE, OPTIONS or
196             CONNECT as defined by the HTTP protocol
198             <footnote>
199               <para>
200                 См. RFC 2616 - <ulink url="http://www.w3.org/Protocols/rfc2616/rfc2616.html" />.
201               </para>
202             </footnote>.
203             Для удобства все они определены как константы класса:
204             Zend_Http_Request::GET, Zend_Http_Request::POST и т.д.
205 <!--
206             For convenience, these are all defined as class constants:
207             Zend_Http_Request::GET, Zend_Http_Request::POST and so on.
209         </para>
210         <para>
211             Если метод запроса не был указан, то используемый метод определяется
212             последним вызовом <code>setMethod()</code>. Если
213             <code>setMethod()</code> не был вызван, то по умолчанию используется
214             метод GET (см. пример выше).
215 <!--
216             If no method is specified, the method set by the last setMethod()
217             call is used. If setMethod() was never called, the default request
218             method is GET (see the above example).
220             <example>
221                 <title>Использование методов запроса, отличных от GET<!--Using Request Methods Other Than GET--></title>
222                 <programlisting language="php">
223 <![CDATA[<?php
224     // Выполнение запроса POST
225     $response = $client->request('POST');
227     // Еще один способ сделать то же самое:
228     $client->setMethod(Zend_Http_Client::POST);
229     $response = $client->request();
230 ?>]]></programlisting>
231             </example>
232         </para>
233     </sect2>
235     <sect2 id="zend.http.client.parameters">
236         <title>Добавление параметров GET и POST<!--Adding GET and POST parameters--></title>
237         <para>
238             Добавление параметров GET в HTTP-запрос довольно простое, это может
239             быть сделано посредством определения параметров как часть URL или с
240             использованием метода <code>setParameterGet()</code>. Этот метод
241             принимает имя параметра GET и его значение первый и второй аргументы
242             соответственно. Метод <code>setParameterGet()</code>
243             может также принимать ассоциативный массив пар имя => значение, что
244             удобно, если нужно установить несколько параметров GET.
245 <!--
246             Adding GET parameters to an HTTP request is quite simple, and can
247             be done either by specifying them as part of the URL, or by using
248             the setParameterGet() method.
249             This method takes the GET parameter's name as it's first parameter,
250             and the GET parameter's value as it's second parameter.
251             For convenience, the setParameterGet() method can also accept a
252             single associative array of name => value GET variables - which may
253             be more comfortable when several GET parameters need to be set.
255             <example>
256                 <title>Установка параметров GET<!--Setting GET Parameters--></title>
257                 <programlisting language="php">
258 <![CDATA[<?php
259     // Установка параметра GET с использованием метода setParameterGet
260     $client->setParameterGet('knight', 'lancelot');
262     // Эвивалентный код с установкой через URL:
263     $client->setUri('http://example.com/index.php?knight=lancelot');
265     // Добавление нескольких параметров в одном вызове
266     $client->setParameterGet(array(
267         'first_name'  => 'Bender',
268         'middle_name' => 'Bending'
269         'made_in'     => 'Mexico',
270     ));
271 ?>]]></programlisting>
272             </example>
273         </para>
274         <para>
275             В то время как параметры GET могут отправляться с любыми методами
276             запроса, параметры POST могут отправляться только в теле запроса
277             POST. Добавление параметров POST к запросу очень похоже на
278             добавление параметров GET и выполняется через метод
279             <code>setParameterPost()</code>.
280 <!--
281             While GET parameters can be sent with every request method, POST
282             parameters are only sent in the body of POST requests. Adding POST
283             parameters to a request is very similar to adding GET parameters,
284             and can be done with the setParameterPost() method, which is
285             similar to the setParameterGet() method in structure.
287             <example>
288                 <title>Установка параметров POST<!--Setting POST Parameters--></title>
289                 <programlisting language="php">
290 <![CDATA[<?php
291     // Установка параметра POST
292     $client->setParameterPost('language', 'fr');
294     // Установка нескольких параметров POST,
295     // один из них - с несколькими значениями
296     $client->setParameterPost(array(
297         'language'  => 'es',
298         'country'   => 'ar',
299         'selection' => array(45, 32, 80)
300     ));
301 ?>]]></programlisting>
302             </example>
304             Заметьте, что отправляя запрос POST, вы можете установить как
305             параметры POST, так и параметры GET. С другой стороны, хотя
306             установка параметров POST для не-POST запросов не вызывает ошибки,
307             она не имеет практического смысла. Если запрос не производится по
308             методу POST, то параметры POST просто игнорируются.
309 <!--
310             Note that when sending POST requests, you can set both GET and
311             POST parameters. On the other hand, while setting POST parameters
312             for a non-POST request will not trigger and error, it is useless.
313             Unless the request is a POST request, POST parameters are simply
314             ignored.
316         </para>
317     </sect2>
319     <sect2 id="zend.http.client.accessing_last">
320         <title>Получение последних запроса и ответа<!--Accessing Last Request and Response--></title>
321         <para>
322             Zend_Http_Client предоставляет методы для получения последнего
323             отправленного запроса и последнего ответа, полученного через
324             объект клиента. Метод
325             <code>Zend_Http_Client->getLastRequest()</code> не требует
326             параметров и возвращает последний HTTP-запрос, отправленный
327             через объект клиента, в виде строки. Аналогично,
328             <code>Zend_Http_Client->getLastResponse()</code> возвращает
329             последний HTTP-ответ, полученный через объект клиента, в виде
330             объекта <link linkend="zend.http.response">Zend_Http_Response</link>.
331 <!--
332             Zend_Http_Client provides methods of accessing the last request
333             sent and last response received by the client object.
334             <code>Zend_Http_Client->getLastRequest()</code> takes no parameters
335             and returns the last HTTP request sent by the client as a string.
336             Similarly, <code>Zend_Http_Client->getLastResponse()</code> returns
337             the last HTTP response received by the client as a
338             <link linkend="zend.http.response">Zend_Http_Response</link> object.
340         </para>
341     </sect2>
343 </sect1>
345 <!--
346 vim:se ts=4 sw=4 et: