| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347 |
- <sect1 id="zend.http.client">
- <title>Zend_Http_Client - Введение</title>
- <sect2 id="zend.http.client.introduction">
- <title>Введение</title>
- <para>
- Zend_Http_Client предоставляет простой интерфейс для выполнения
- HTTP-запросов. Zend_Http_Client поддерживает как большинство простых
- возможностей, ожидаемых от любого HTTP-клиента, так и более сложные
- функции, такие, как HTTP-аутентификация и выгрузка файлов. При
- успешно выполненных запросах (и большинстве неуспешно выполненных)
- возвращается объект Zend_Http_Response, который предоставляет доступ
- к заголовкам и телу ответа (см. <xref linkend="zend.http.response" />).
- <!--
- Zend_Http_Client provides an easy interface for preforming Hyper-Text
- Transfer Protocol (HTTP) requests. Zend_Http_Client supports most simple
- features expected from an HTTP client, as well as some more complex
- features such as HTTP authentication and file uploads. Successful
- requests (and most unsuccessful ones too) return a Zend_Http_Response
- object, which provides access to the response's headers and body (see
- <xref linkend="zend.http.response" />).
- -->
- </para>
- <para>
- Конструктор класса опционально принимает URL (может быть строкой или
- объектом Zend_Uri_Http) и массив конфирурационных параметров. Оба
- параметра могут быть опущены и установлены позднее через методы
- <code>setUri()</code> и <code>setConfig()</code>.
- <!--
- The class constructor optionally accepts a URL as it's first parameter
- (can be either a string or a Zend_Uri_Http object), and an optional
- array of configuration parameters. Both can be left out,
- and set later using the setUri() and setConfig() methods.
- -->
- <example>
- <title>Инстанцирование объекта Zend_Http_Client<!--Instantiating a Zend_Http_Client object--></title>
- <programlisting language="php">
- <![CDATA[<?php
- require_once 'Zend/Http/Client.php';
- $client = new Zend_Http_Client('http://example.org', array(
- 'maxredirects' => 0,
- 'timeout' => 30));
- // Этот код делает то же самое:
- $client = new Zend_Http_Client();
- $client->setUri('http://example.org');
- $client->setConfig(array(
- 'maxredirects' => 0,
- 'timeout' => 30));
- ?>]]></programlisting>
- </example>
- </para>
- </sect2>
- <sect2 id="zend.http.client.configuration">
- <title>Параметры конфигурации<!--Configuration Parameters--></title>
- <para>
- Конструктор и метод <code>setConfig()</code> принимают ассоциативный
- массив параметров конфигурации. Установка этих параметров является
- опциональной, поскольку все они имеют значения по умолчанию.
- <!--
- The constructor and setConfig() method accept an associative array
- of configuration parameters. Setting these parameters is optional,
- as they all have default values.
- -->
- <table>
- <title>Параметры конфигурации Zend_Http_Client<!--Zend_Http_Client configuration parameters--></title>
- <tgroup cols="4">
- <thead>
- <row>
- <entry>Параметр</entry>
- <entry>Описание</entry>
- <entry>Тип</entry>
- <entry>Значение по умолчанию</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>maxredirects</entry>
- <entry>
- Максимальное количество последующих
- перенаправлений (0 = ни одного перенаправления)
- <!--
- Maximum number of redirections to follow (0 = none)
- -->
- </entry>
- <entry>integer</entry>
- <entry>5</entry>
- </row>
- <row>
- <entry>strictredirects</entry>
- <entry>
- Строгое следование спецификации RFC при
- перенаправлениях (см. <xref linkend="zend.http.client.redirections" />)
- <!--
- Whether to strictly follow the RFC when redirecting (see <xref linkend="zend.http.client.redirections" />)
- -->
- </entry>
- <entry>boolean</entry>
- <entry>false</entry>
- </row>
- <row>
- <entry>useragent</entry>
- <entry>
- Идентификатор агента пользователя (отправляется
- в заголовке запроса)
- <!--
- User agent identifier string (sent in request headers)
- -->
- </entry>
- <entry>string</entry>
- <entry>'Zend_Http_Client'</entry>
- </row>
- <row>
- <entry>timeout</entry>
- <entry>
- Таймаут соединения в секундах
- <!--
- Connection timeout (seconds)
- -->
- </entry>
- <entry>integer</entry>
- <entry>10</entry>
- </row>
- <row>
- <entry>httpversion</entry>
- <entry>
- Версия протокола HTTP
- <!--
- HTTP protocol version
- -->
- </entry>
- <entry>float (1.1 or 1.0)</entry>
- <entry>1.1</entry>
- </row>
- <row>
- <entry>adapter</entry>
- <entry>
- Используемый класс адаптера соединения
- (см. <xref linkend="zend.http.client.adapters" />)
- <!--
- Connection adapter class to use (see <xref linkend="zend.http.client.adapters" />)
- -->
- </entry>
- <entry>mixed</entry>
- <entry>'Zend_Http_Client_Adapter_Socket'</entry>
- </row>
- <row>
- <entry>keepalive</entry>
- <entry>
- Включение поддержки соединения keep-alive с
- сервером. Может быть полезно и повышает
- поизводительность, если выполняется несколько
- последовательных запросов к одному и тому же
- серверу.
- <!--
- Whether to enable keep-alive connections with the server. Useful and might improve performance if several consecutive requests to the same server are performned.
- -->
- </entry>
- <entry>boolean</entry>
- <entry>false</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </para>
- </sect2>
- <sect2 id="zend.http.client.basic-requests">
- <title>Выполнение базовых HTTP-запросов<!--Performing Basic HTTP Requests--></title>
- <para>
- Выполнение простых HTTP-запросов с использованием метода
- <code>request()</code> довольно простое, и редко требуется больше
- кода, чем в эти три строчки:
- <!--
- Performing simple HTTP requests is very easily done using the
- request() method, and rarely needs more than three lines of code:
- -->
- <example>
- <title>Выполнение простого запроса GET<!--Preforming a Simple GET Request--></title>
- <programlisting language="php">
- <![CDATA[<?php
- require_once 'Zend/Http/Client.php';
- $client = new Zend_Http_Client('http://example.org');
- $response = $client->request();
- ?>]]></programlisting>
- </example>
- Метод <code>request()</code> принимает один необязательный параметр
- - метод запроса. Это могут быть методы GET, POST, PUT, HEAD, DELETE,
- TRACE, OPTIONS или CONNECT, определенные в протоколе HTTP.
- <!--
- The request() method takes one optional parameter - the request method.
- This can be either GET, POST, PUT, HEAD, DELETE, TRACE, OPTIONS or
- CONNECT as defined by the HTTP protocol
- -->
- <footnote>
- <para>
- См. RFC 2616 - <ulink url="http://www.w3.org/Protocols/rfc2616/rfc2616.html" />.
- </para>
- </footnote>.
- Для удобства все они определены как константы класса:
- Zend_Http_Request::GET, Zend_Http_Request::POST и т.д.
- <!--
- For convenience, these are all defined as class constants:
- Zend_Http_Request::GET, Zend_Http_Request::POST and so on.
- -->
- </para>
- <para>
- Если метод запроса не был указан, то используемый метод определяется
- последним вызовом <code>setMethod()</code>. Если
- <code>setMethod()</code> не был вызван, то по умолчанию используется
- метод GET (см. пример выше).
- <!--
- If no method is specified, the method set by the last setMethod()
- call is used. If setMethod() was never called, the default request
- method is GET (see the above example).
- -->
- <example>
- <title>Использование методов запроса, отличных от GET<!--Using Request Methods Other Than GET--></title>
- <programlisting language="php">
- <![CDATA[<?php
- // Выполнение запроса POST
- $response = $client->request('POST');
- // Еще один способ сделать то же самое:
- $client->setMethod(Zend_Http_Client::POST);
- $response = $client->request();
- ?>]]></programlisting>
- </example>
- </para>
- </sect2>
- <sect2 id="zend.http.client.parameters">
- <title>Добавление параметров GET и POST<!--Adding GET and POST parameters--></title>
- <para>
- Добавление параметров GET в HTTP-запрос довольно простое, это может
- быть сделано посредством определения параметров как часть URL или с
- использованием метода <code>setParameterGet()</code>. Этот метод
- принимает имя параметра GET и его значение первый и второй аргументы
- соответственно. Метод <code>setParameterGet()</code>
- может также принимать ассоциативный массив пар имя => значение, что
- удобно, если нужно установить несколько параметров GET.
- <!--
- Adding GET parameters to an HTTP request is quite simple, and can
- be done either by specifying them as part of the URL, or by using
- the setParameterGet() method.
- This method takes the GET parameter's name as it's first parameter,
- and the GET parameter's value as it's second parameter.
- For convenience, the setParameterGet() method can also accept a
- single associative array of name => value GET variables - which may
- be more comfortable when several GET parameters need to be set.
- -->
- <example>
- <title>Установка параметров GET<!--Setting GET Parameters--></title>
- <programlisting language="php">
- <![CDATA[<?php
- // Установка параметра GET с использованием метода setParameterGet
- $client->setParameterGet('knight', 'lancelot');
- // Эвивалентный код с установкой через URL:
- $client->setUri('http://example.com/index.php?knight=lancelot');
- // Добавление нескольких параметров в одном вызове
- $client->setParameterGet(array(
- 'first_name' => 'Bender',
- 'middle_name' => 'Bending'
- 'made_in' => 'Mexico',
- ));
- ?>]]></programlisting>
- </example>
- </para>
- <para>
- В то время как параметры GET могут отправляться с любыми методами
- запроса, параметры POST могут отправляться только в теле запроса
- POST. Добавление параметров POST к запросу очень похоже на
- добавление параметров GET и выполняется через метод
- <code>setParameterPost()</code>.
- <!--
- While GET parameters can be sent with every request method, POST
- parameters are only sent in the body of POST requests. Adding POST
- parameters to a request is very similar to adding GET parameters,
- and can be done with the setParameterPost() method, which is
- similar to the setParameterGet() method in structure.
- -->
- <example>
- <title>Установка параметров POST<!--Setting POST Parameters--></title>
- <programlisting language="php">
- <![CDATA[<?php
- // Установка параметра POST
- $client->setParameterPost('language', 'fr');
- // Установка нескольких параметров POST,
- // один из них - с несколькими значениями
- $client->setParameterPost(array(
- 'language' => 'es',
- 'country' => 'ar',
- 'selection' => array(45, 32, 80)
- ));
- ?>]]></programlisting>
- </example>
- Заметьте, что отправляя запрос POST, вы можете установить как
- параметры POST, так и параметры GET. С другой стороны, хотя
- установка параметров POST для не-POST запросов не вызывает ошибки,
- она не имеет практического смысла. Если запрос не производится по
- методу POST, то параметры POST просто игнорируются.
- <!--
- Note that when sending POST requests, you can set both GET and
- POST parameters. On the other hand, while setting POST parameters
- for a non-POST request will not trigger and error, it is useless.
- Unless the request is a POST request, POST parameters are simply
- ignored.
- -->
- </para>
- </sect2>
- <sect2 id="zend.http.client.accessing_last">
- <title>Получение последних запроса и ответа<!--Accessing Last Request and Response--></title>
- <para>
- Zend_Http_Client предоставляет методы для получения последнего
- отправленного запроса и последнего ответа, полученного через
- объект клиента. Метод
- <code>Zend_Http_Client->getLastRequest()</code> не требует
- параметров и возвращает последний HTTP-запрос, отправленный
- через объект клиента, в виде строки. Аналогично,
- <code>Zend_Http_Client->getLastResponse()</code> возвращает
- последний HTTP-ответ, полученный через объект клиента, в виде
- объекта <link linkend="zend.http.response">Zend_Http_Response</link>.
- <!--
- Zend_Http_Client provides methods of accessing the last request
- sent and last response received by the client object.
- <code>Zend_Http_Client->getLastRequest()</code> takes no parameters
- and returns the last HTTP request sent by the client as a string.
- Similarly, <code>Zend_Http_Client->getLastResponse()</code> returns
- the last HTTP response received by the client as a
- <link linkend="zend.http.response">Zend_Http_Response</link> object.
- -->
- </para>
- </sect2>
- </sect1>
- <!--
- vim:se ts=4 sw=4 et:
- -->
|