Introduction to 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
  • Translation 96.1% Update 2010-11-28 - Revision 23448 - Version ZF 1.11.x

    Chapter 37. Zend_Http

    Table of Contents

    37.1. Einführung
    37.1.1. Zend_Http_Client verwenden
    37.1.2. Konfigurationsparameter
    37.1.3. Durchführen von einfachen HTTP Anfragen
    37.1.4. Hinzufügen von GET und POST Parametern
    37.1.5. Zugriff auf die Letzte Anfrage und Antwort
    37.2. Zend_Http_Client - Fortgeschrittende Nutzung
    37.2.1. HTTP Umleitungen
    37.2.2. Hinzufügen von Cookies und Verwendung von persistenten Cookies
    37.2.3. Setzen von individuellen Anfrageheadern
    37.2.4. Dateiuploads
    37.2.5. Unverarbeitete POST Daten versenden
    37.2.6. HTTP Authentifizierung
    37.2.7. Versenden mehrerer Anfragen mit dem selben Client
    37.2.8. Daten Streaming
    37.3. Zend_Http_Client - Verbindungsadapter
    37.3.1. Verbindungsadapter
    37.3.2. Der Socket Adapter
    37.3.2.1. Anpassen und Zugreifen auf den Socket Adapter Stream Kontext
    37.3.3. Der Proxy Adapter
    37.3.4. Der cURL Adapter
    37.3.5. Der Test Adapter
    37.3.6. Einen eigenen Adapter erstellen
    37.4. Zend_Http_Cookie und Zend_Http_CookieJar
    37.4.1. Einführung
    37.4.2. Instanzieren von Zend_Http_Cookie Objekten
    37.4.3. Zend_Http_Cookie getter-Methoden
    37.4.4. Zend_Http_Cookie: Überprüfen von Szenarien
    37.4.5. Die Zend_Http_CookieJar Klasse: Instanzierung
    37.4.6. Hinzufügen von Cookies zu einem Zend_Http_CookieJar Objekt
    37.4.7. Abrufen der Cookies von einem Zend_Http_CookieJar-Objekts
    37.5. Zend_Http_Response
    37.5.1. Einführung
    37.5.2. Boolesche Testmethoden
    37.5.3. Zugriffsmethoden
    37.5.4. Statische HTTP Antwortanalysierer
    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. Einführung

    Zend_Http_Client stellt eine einfache Schnittstelle für das Durchführen von Hyper-Text Transfer Protocol (HTTP) Anfragen. Zend_Http_Client unterstützt die meisten einfachen Funktionen, die man von einem HTTP Client erwartet, sowie einige komplexere Funktionen, wie z.B. HTTP Authentifizierung und Dateiuploads. Erfolgreiche Anfragen (und die meisten nicht erfolgreichen ebenfalls) liefern ein Zend_Http_Response Objekt zurück, welches den Zugriff auf die Header und den Hauptteil der Antwort ermöglichen (siehe diesen Abschnitt).

    37.1.1. Zend_Http_Client verwenden

    Der Klassenkonstruktor akzeptiert optional eine URL als seinen ersten Parameter (kann entweder ein String oder ein Zend_Uri_Http Objekt sein) und ein Array oder Zend_Config Objekt welches Konfigurationsparameter enthält. Beides kann ausgelassen und später durch Verwendung der setUri() and setConfig() Methoden gesetzt werden.

    Example 37.1. Ein Zend_Http_Client Objekt instanzieren

    $client = new Zend_Http_Client('http://example.org', array(
        
    'maxredirects' => 0,
        
    'timeout'      => 30));

    // Dies macht genau das selbe:
    $client = new Zend_Http_Client();
    $client->setUri('http://example.org');
    $client->setConfig(array(
        
    'maxredirects' => 0,
        
    'timeout'      => 30));

    // Man kann auch ein Zend_Config Objekt verwenden um die Konfiguration
    // des Clients zu setzen
    $config = new Zend_Config_Ini('httpclient.ini''secure');
    $client->setConfig($config);


    [Note] Note

    Zend_Http_Client verwendet Zend_Uri_Http um URLs zu prüfen. Das bedeutet das einige spezielle Zeichen wie das Pipe-Symbol ('|') oder das Karet Symbol ('^') in der URL standardmäßig nicht akzeptiert werden. Das kann geändert werden indem die 'allow_unwise' Option von Zend_Uri auf 'TRUE' gesetzt wird. Siehe diesen Abschnitt für mehr Informationen.

    37.1.2. Konfigurationsparameter

    Der Konstruktor und die setConfig() Methode akzeptieren ein assoziatives Array mit Konfigurationsparametern oder ein Zend_Config Objekt. Das Setzen dieser Parameter ist optional, da alle einen Standardwert haben.

    Table 37.1. Zend_Http_Client Konfigurationsparameter

    Parameter Beschreibung Erwartete Werte Standardwert
    maxredirects Maximale Anzahl von zu folgenden Umleitungen (0 = keine) integer 5
    strict Ob Prüfungen an Headernamen durchzuführen sind. Einige Prüf-Funktionen werden übersprungen wenn auf FALSE gesetzt. Sollte normalerweise nicht geändert werden boolean TRUE
    strictredirects Ob beim Umleiten genau dem RFC zu folgen ist (siehe diesen Abschnitt) boolean FALSE
    useragent String zur Identifizierung des User Agents (gesendet in den Anfrageheadern) string 'Zend_Http_Client'
    timeout Zeitüberschreitung für Verbindungen (Sekunden) integer 10
    httpversion Version des HTTP Protokolls (normalerweise '1.1' oder '1.0') string '1.1'
    adapter Zu verwendene Adapterklasse für die Verbindung (siehe diesen Abschnitt) mixed 'Zend_Http_Client_Adapter_Socket'
    keepalive Ob keep-alive Verbindungen mit dem Server aktiviert werden sollen. Nützlich und kann die Performance verbessern, wenn mehrere aufeinanderfolgend Anfragen an den selben Server ausgeführt werden. boolean FALSE
    storeresponse Ob die letzte Antwort für einen späteren Aufruf von getLastResponse() gespeichert werden soll. Wird sie auf FALSE gesetzt gibt getLastResponse() NULL zurück. boolean TRUE
    encodecookies Ob der Cookie Wert über urlencode oder urldecode übergeben werden soll oder nicht. Dessen Aktivierung verhindert die Unterstützung bei einigen Web Servern. Dessen Deaktivierung limitiert den Bereich der Werte die Cookies enthalten können. boolean TRUE


    37.1.3. Durchführen von einfachen HTTP Anfragen

    Das Durchführen von einfachen HTTP Anfragen kann sehr leicht durch Verwendung der request() Methode gemacht werden und benötigt selten mehr als drei Codezeilen:

    Example 37.2. Durchführen einer einfache GET Anfrage

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


    Die request() Methode akzeptiert einen optionalen Parameter - die Anfragemethode. Diese kann GET, POST, PUT, HEAD, DELETE, TRACE, OPTIONS oder CONNECT sein, wie im HTTP Protokoll definiert. [6]. Zur Erleichterung sind alle als Klassenkonstanten definiert: Zend_Http_Client::GET, Zend_Http_Client::POST und so weiter.

    Wenn keine Methode angegeben worden ist, wird die durch den letzten Aufruf von setMethod() gesetzte Methode verwendet. Wenn setMethod() vorher nicht aufgerufen worden ist, wird als Standardmethode GET verwendet (siehe obiges Beispiel).

    Example 37.3. Andere Anfragemethoden als GET verwenden

    // Durchführen einer POST Anfrage
    $response $client->request('POST');

    // Ein weiterer Weg, eine POST Anfrage durchzuführen
    $client->setMethod(Zend_Http_Client::POST);
    $response $client->request();


    37.1.4. Hinzufügen von GET und POST Parametern

    Das Hinzufügen von GET Parametern zu einer HTTP Anfrage ist recht einfach und kann entweder über die Angabe als Teil der URL oder durch Verwendung der setParameterGet() Methode erfolgen. Diese Methode benötigt den Namen des GET Parameter als seinen ersten Parameter und den Wert des GET Parameter als seinen zweiten Parameter. Zur Erleichterung akzeptiert die setParameterGet() Methode auch ein einzelnes assoziatives Array mit GET Parameter als Name => Wert Variablen, was beim setzen von mehreren GET Parametern komfortabler sein kann.

    Example 37.4. Setzen von GET Parametern

    // Setzen eines GET Parameter mit der setParameterGet Methode
    $client->setParameterGet('knight''lancelot');

    // Dies ist äquivalent durch Setzen der URL:
    $client->setUri('http://example.com/index.php?knight=lancelot');

    // Hinzufügen mehrerer Parameter durch einen Aufruf
    $client->setParameterGet(array(
        
    'first_name'  => 'Bender',
        
    'middle_name' => 'Bending'
        'made_in'     
    => 'Mexico',
    ));


    Während GET Parameter bei jeder Anfragemethode gesetzt werden können, können POST Parameter nur im Hauptteil von POST Anfragen versendet werden. Das Hinzufügen von POST Parameter zu einer Anfrage ist sehr ähnlich wie das Hinzufügen von GET Parametern and kann mit der setParameterPost() Methode gemacht werden, die vom Aufbau der setParameterGet() Methode ähnlich ist..

    Example 37.5. Setzen von POST Parametern

    // Setzen eines POST Parameters
    $client->setParameterPost('language''fr');

    // Hinzufügen von mehreren POST Parametern, eines davon mit mehreren Werten
    $client->setParameterPost(array(
        
    'language'  => 'es',
        
    'country'   => 'ar',
        
    'selection' => array(453280)
    ));


    Beim Senden einer POST Anfrage ist zu beachten, dass man sowohl GET als auch POST Parameter setzen kann. Auf der anderen Seite wird durch das Setzen von POST Parametern für andere Anfragen als POST kein Fehler ausgeworfen. Solange eine Anfrage keine POST Anfrage ist, werden POST Parameter einfach ignoriert.

    37.1.5. Zugriff auf die Letzte Anfrage und Antwort

    Zend_Http_Client bietet Methoden um Zugriff auf die letzte gesendete Anfrage und die letzte empfangene Antwort des Client Objekts zu bekommen. Zend_Http_Client->getLastRequest() hat keine Parameter und gibt die letzte HTTP Anfrage als String zurück die der Client gesendet hat. Auf die gleiche Art und Weise gibt Zend_Http_Client->getLastResponse() die letzte HTTP Antwort als Zend_Http_Response Objekt zurück die der Client empfangen hat.

    digg delicious meneame google twitter technorati facebook

    Comments

    Loading...