Programmer's Reference Guide
| Zend_Http_Cookie und Zend_Http_CookieJar |
Zend_Http_Response
Einführung
Zend_Http_Response stellt den einfachen Zugriff auf eine HTTP Rückantwort sowie einige statische Methoden zum Analysieren der HTTP Rückantworten bereit. Normalerweise wird Zend_Http_Response als ein Objekt verwendet, dass von einer Zend_Http_Client Anfrage zurückgegeben wurde.
In den meisten Fällen wird ein Zend_Http_Response Objekt über die fromString() Methode instanziert, die einen String liest, der eine HTTP Rückantwort enthält und ein Zend_Http_Response Objekt zurückgibt.
Beispiel #1 Ein Zend_Http_Response Object über die factory Methode instanzieren
Man kann auch die Konstruktormethode verwenden, um ein neues Response Objekt zu erstellen, indem man alle Parameter für die Antwort angibt:
public function __construct($code, $headers, $body = null, $version = '1.1', $message = null)
-
$code: Der HTTP Antwortcode(eg. 200, 404, etc.)
-
$headers: Ein assoziatives Array mit HTTP Antwort Headers (z.B. 'Host' => 'example.com')
-
$body: Der Hauptteil der Antwort als String
-
$version: Der Version der HTTP Antwort (normalerweise 1.0 oder 1.1)
-
$message: Die HTTP Rückantwort (z.B. 'OK', 'Internal Server Error'). Falls nicht angegeben, wird die Rückantwort anhand des Antwortcode gesetzt.
Boolesche Testmethoden
Sobald ein Zend_Http_Response Objekt instantiert ist, stellt es mehrere Methoden bereit, die zum Testen des Typs der Antwort verwendet werden können. Diese geben alle ein boolesches TRUE oder FALSE zurück:
-
isSuccessful(): Ob die Anfrage erfolgreoch war oder nicht. Gibt TRUE für HTTP 1xx und 2xx Antwortcodes zurück.
-
isError(): Ob der Antwortcode auf einen Fehler rückschließen lässt oder nicht. Gibt TRUE für HTTP 4xx (Client Fehler) und 5xx (Server Fehler) Antwortcodes zurück.
-
isRedirect(): Ob die Antwort eine Weiterleitung ist oder nicht. Gibt TRUE für HTTP 3xx Antwortcodes zurück.
Zugriffsmethoden
Der Hauptzweck eines Response Okjektes ist der einfache Zugriff auf diverse Antwortparameter.
-
getStatus(): Erhalte den HTTP Antwortstatuscode (z.B. 200, 504, etc.) zurück
-
getMessage(): Erhalte die HTTP Antwortstatus Meldung (z.B. "Not Found", "Authorization Required") zurück.
-
getBody(): Erhalte den kompletten dekodierten Hauptteil der HTTP Antwort zurück
-
getRawBody(): Erhalte die rohen, möglicherweise kodierten Hauptteil der HTTP Antwort zurück. Wenn der Hauptteil z.B. mittels GZIP kodiert wurde, wird er nicht dekodiert.
-
getHeaders(): Erhalte die HTTP Antwort Header als assoziatives Array (z.B. 'Content-type' => 'text/html') zurück.
-
getHeader($header): Erhalte einen spezifischen HTTP Antwort Header zurück, der durch $header angegeben wird.
-
getHeadersAsString($status_line, $br): Erhalte den kompletten Header Satz als String zurück. Wenn $status_line auf TRUE gesetzt ist (Standardwert), wird die erste Statuszeile (z.B. "HTTP/1.1 200 OK") ebenfalls zurück gegeben. Die Zeilen werden durch den $br Parameter umgebrochen (kann z.B. "<br />" sein. Standardwert ist "\n").
-
asString($br): Erhalte die komplette Rückantwort als String zurück. Die Zeilen werden durch den $br Parameter umgebrochen (kann z.B. "<br />" sein. Standardwert ist "\n"). Man kann auch die magische __toString() Methode verwenden wenn man das Objekt in einen String casten will. Diese wird dann auf asString() weiterleiten
Beispiel #3 Zend_Http_Response Zugriffsmethoden verwenden
Hinweis: Immer die Rückgabewerte prüfen
Weil eine Antwort mehrere Instanzen des selben Headers beinhalten kann, können die getHeader() Methode und getHeaders() Methode entweder einen einzelnen String oder ein Array mit Strings für jeden Header zurückgeben. Man sollte immer prüfen, ob der Rückgabewert ein String oder ein Array ist.
Beispiel #4 Auf Antwort Header zugreifen
- $ctype = $response->getHeader('Content-type');
- $body = $response->getBody();
- if ($ctype == 'text/html' || $ctype == 'text/xml') {
- }
- echo $body;
Statische HTTP Antwortanalysierer
Die Zend_Http_Response Klasse beinhaltet auch verschiedene, intern verwendete Methoden für die Verarbeitung und Analyse der HTTP Rückantworten bereit. Diese Methoden sind alle als statische Methoden eingerichtet, so dass man sie extern verwenden kann, ohne dass man ein Response Objekt instanzierebn muss und nur einen bestimmten Teil der Antwort extrahieren möchte.
-
Zend_Http_Response::extractCode($response_str): Extrahiere den HTTP Antwortcode (z.B. 200 oder 404) von $response_str und gebe ihn zurück.
-
Zend_Http_Response::extractMessage($response_str): Extrahiere die HTTP Rückantwort (z.B. "OK" oder "File Not Found") von $response_str und gebe sie zurück.
-
Zend_Http_Response::extractVersion($response_str): Extrahiere die HTTP Version (z.B. 1.1 oder 1.0) von $response_str und gebe sie zurück.
-
Zend_Http_Response::extractHeaders($response_str): Extrahiere die HTTP Antwort Header von $response_str und gebe sie in einem Array zurück.
-
Zend_Http_Response::extractBody($response_str): Extrahiere den HTTP Antworthauptteil aus $response_str und gebe ihn zurück.
-
Zend_Http_Response::responseCodeAsText($code, $http11): Erhalte die Standard HTTP Rückantwort für einen Antwortcode $code. Zum Beispiel wird "Internal Server Error" zurückgegeben, wenn $code gleich 500 ist. Wenn $http11 gleich TRUE ist (Standard), werden die HTTP/1.1 Standardantworten zurück gegeben, andernfalls die HTTP/1.0 Antworten. Wird $code nicht angegeben, wird diese Methode alle bekannten HTTP Antwortcodes als assoziatives Array (code => message) zurückgeben.
Neben der Analysemethoden beinhaltet die Klasse auch einen Satz von Dekodieren für allgemein HTTP Antwort Transferkodierungen:
-
Zend_Http_Response::decodeChunkedBody($body): Dekodiere einen kompletten "Content-Transfer-Encoding: Chunked" Hauptteil
-
Zend_Http_Response::decodeGzip($body): Dekodiere einen "Content-Encoding: gzip" Hauptteil
-
Zend_Http_Response::decodeDeflate($body): Dekodiere einen "Content-Encoding: deflate" Hauptteil
| Zend_Http_Cookie und Zend_Http_CookieJar |
Select a Version
Languages Available
Components
Search the Manual
Navigation
- Zend Framework's Referenzhandbuch
- Zend Framework's Referenzhandbuch
- Zend Framework's Referenz
- Zend_Http
- Einführung
- Zend_Http_Client - Fortgeschrittende Nutzung
- Zend_Http_Client - Verbindungsadapter
- Zend_Http_Cookie und Zend_Http_CookieJar
- Zend_Http_Response
- Zend_Http_UserAgent
- The UserAgent Device Interface
- The UserAgent Features Adapter
- The WURFL UserAgent Features Adapter
- The DeviceAtlas UserAgent Features Adapter
- The TeraWurfl UserAgent Features Adapter
- The UserAgent Storage Interface
- The Session UserAgent Storage Adapter
