Введение в Zend Framework

 Learning Zend Framework

appendix

 Zend Framework Reference


  • 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
  • Ttranslation 27.4% Update 2010-11-28 - Revision 23238 - Version ZF 1.11.x

    Глава 37. Zend_Http

    Содержание

    37.1. Zend_Http_Client - Введение
    37.1.1. Введение
    37.1.2. Параметры конфигурации
    37.1.3. Выполнение базовых HTTP-запросов
    37.1.4. Добавление параметров GET и POST
    37.1.5. Получение последних запроса и ответа
    37.2. Zend_Http_Client - Advanced Usage
    37.2.1. HTTP Redirections
    37.2.2. Adding Cookies and Using Cookie Persistence
    37.2.3. Setting Custom Request Headers
    37.2.4. File Uploads
    37.2.5. Sending Raw POST Data
    37.2.6. HTTP Authentication
    37.2.7. Sending Multiple Requests With the Same Client
    37.2.8. Data Streaming
    37.3. Zend_Http_Client - Connection Adapters
    37.3.1. Overview
    37.3.2. The Socket Adapter
    37.3.2.1. Customizing and accessing the Socket adapter stream context
    37.3.3. The Proxy Adapter
    37.3.4. The cURL Adapter
    37.3.5. The Test Adapter
    37.3.6. Creating your own connection adapters
    37.4. Zend_Http_Cookie and Zend_Http_CookieJar
    37.4.1. Introduction
    37.4.2. Instantiating Zend_Http_Cookie Objects
    37.4.3. Zend_Http_Cookie getter methods
    37.4.4. Zend_Http_Cookie: Matching against a scenario
    37.4.5. The Zend_Http_CookieJar Class: Instantiation
    37.4.6. Adding Cookies to a Zend_Http_CookieJar object
    37.4.7. Retrieving Cookies From a Zend_Http_CookieJar object
    37.5. Zend_Http_Response
    37.5.1. Introduction
    37.5.2. Boolean Tester Methods
    37.5.3. Accessor Methods
    37.5.4. Static HTTP Response Parsers
    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. Zend_Http_Client - Введение

    37.1.1. Введение

    Zend_Http_Client предоставляет простой интерфейс для выполнения HTTP-запросов. Zend_Http_Client поддерживает как большинство простых возможностей, ожидаемых от любого HTTP-клиента, так и более сложные функции, такие, как HTTP-аутентификация и выгрузка файлов. При успешно выполненных запросах (и большинстве неуспешно выполненных) возвращается объект Zend_Http_Response, который предоставляет доступ к заголовкам и телу ответа (см. Раздел 37.5, «Zend_Http_Response»).

    Конструктор класса опционально принимает URL (может быть строкой или объектом Zend_Uri_Http) и массив конфирурационных параметров. Оба параметра могут быть опущены и установлены позднее через методы setUri() и setConfig().

    Пример 37.1. Инстанцирование объекта Zend_Http_Client

    <?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));

    ?>


    37.1.2. Параметры конфигурации

    Конструктор и метод setConfig() принимают ассоциативный массив параметров конфигурации. Установка этих параметров является опциональной, поскольку все они имеют значения по умолчанию.

    Таблица 37.1. Параметры конфигурации Zend_Http_Client

    Параметр Описание Тип Значение по умолчанию
    maxredirects Максимальное количество последующих перенаправлений (0 = ни одного перенаправления) integer 5
    strictredirects Строгое следование спецификации RFC при перенаправлениях (см. Раздел 37.2.1, «HTTP Redirections») boolean false
    useragent Идентификатор агента пользователя (отправляется в заголовке запроса) string 'Zend_Http_Client'
    timeout Таймаут соединения в секундах integer 10
    httpversion Версия протокола HTTP float (1.1 or 1.0) 1.1
    adapter Используемый класс адаптера соединения (см. Раздел 37.3, «Zend_Http_Client - Connection Adapters») mixed 'Zend_Http_Client_Adapter_Socket'
    keepalive Включение поддержки соединения keep-alive с сервером. Может быть полезно и повышает поизводительность, если выполняется несколько последовательных запросов к одному и тому же серверу. boolean false


    37.1.3. Выполнение базовых HTTP-запросов

    Выполнение простых HTTP-запросов с использованием метода request() довольно простое, и редко требуется больше кода, чем в эти три строчки:

    Пример 37.2. Выполнение простого запроса GET

    <?php
        
    require_once 'Zend/Http/Client.php';

        
    $client = new Zend_Http_Client('http://example.org');
        
    $response $client->request();
    ?>


    Метод request() принимает один необязательный параметр - метод запроса. Это могут быть методы GET, POST, PUT, HEAD, DELETE, TRACE, OPTIONS или CONNECT, определенные в протоколе HTTP. [6]. Для удобства все они определены как константы класса: Zend_Http_Request::GET, Zend_Http_Request::POST и т.д.

    Если метод запроса не был указан, то используемый метод определяется последним вызовом setMethod(). Если setMethod() не был вызван, то по умолчанию используется метод GET (см. пример выше).

    Пример 37.3. Использование методов запроса, отличных от GET

    <?php
        
    // Выполнение запроса POST
        
    $response $client->request('POST');

        
    // Еще один способ сделать то же самое:
        
    $client->setMethod(Zend_Http_Client::POST);
        
    $response $client->request();
    ?>


    37.1.4. Добавление параметров GET и POST

    Добавление параметров GET в HTTP-запрос довольно простое, это может быть сделано посредством определения параметров как часть URL или с использованием метода setParameterGet(). Этот метод принимает имя параметра GET и его значение первый и второй аргументы соответственно. Метод setParameterGet() может также принимать ассоциативный массив пар имя => значение, что удобно, если нужно установить несколько параметров GET.

    Пример 37.4. Установка параметров GET

    <?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',
        ));
    ?>


    В то время как параметры GET могут отправляться с любыми методами запроса, параметры POST могут отправляться только в теле запроса POST. Добавление параметров POST к запросу очень похоже на добавление параметров GET и выполняется через метод setParameterPost().

    Пример 37.5. Установка параметров POST

    <?php
        
    // Установка параметра POST
        
    $client->setParameterPost('language''fr');

        
    // Установка нескольких параметров POST,
        // один из них - с несколькими значениями
        
    $client->setParameterPost(array(
            
    'language'  => 'es',
            
    'country'   => 'ar',
            
    'selection' => array(453280)
        ));
    ?>


    Заметьте, что отправляя запрос POST, вы можете установить как параметры POST, так и параметры GET. С другой стороны, хотя установка параметров POST для не-POST запросов не вызывает ошибки, она не имеет практического смысла. Если запрос не производится по методу POST, то параметры POST просто игнорируются.

    37.1.5. Получение последних запроса и ответа

    Zend_Http_Client предоставляет методы для получения последнего отправленного запроса и последнего ответа, полученного через объект клиента. Метод Zend_Http_Client->getLastRequest() не требует параметров и возвращает последний HTTP-запрос, отправленный через объект клиента, в виде строки. Аналогично, Zend_Http_Client->getLastResponse() возвращает последний HTTP-ответ, полученный через объект клиента, в виде объекта Zend_Http_Response.

    digg delicious meneame google twitter technorati facebook

    Comments

    Loading...