Zend Framework
LICENSE
This source file is subject to the new BSD license that is bundled with this package in the file LICENSE.txt. It is also available through the world-wide-web at this URL: http://framework.zend.com/license/new-bsd If you did not receive a copy of the license and are unable to obtain it through the world-wide-web, please send an email to license@zend.com so we can send you a copy immediately.
Zend_Http_Client is an implementation of an HTTP client in PHP. The client supports basic features like sending different HTTP requests and handling redirections, as well as more advanced features like proxy settings, HTTP authentication and cookie persistence (using a Zend_Http_CookieJar object)

resource
$_fileInfoDb= 'null'
Fileinfo magic database resource
This variable is populated the first time _detectFileMimeType is called and is then reused on every call to this method
null
Details
boolean
$_queryBracketsEscaped= 'true'
Status if the http_build_query function escapes brackets
true
Details
boolean
$_unmaskStatus= 'false'
Status for unmasking GET array params
false
Details
\Zend_Http_Client_Adapter_Interface
$adapter= 'null'
The adapter used to perform the actual connection to the server

array|null
$auth= ''
HTTP Authentication settings
Expected to be an associative array with this structure: $this->auth = array('user' => 'username', 'password' => 'password', 'type' => 'basic') Where 'type' should be one of the supported authentication types (see the AUTH_* constants), for example 'basic' or 'digest'.
If null, no authentication will be used.

array
$body_field_order= 'array()'
Ordered list of keys from key/value pair data to include in body
An associative array, where each element is of the format:
'
array()
Details
array
$config= 'array(
'maxredirects' => 5'
Configuration array, set using the constructor or using ::setConfig()
array(
'maxredirects' => 5
Details
\Zend_Http_CookieJar
$cookiejar= 'null'
The client's cookie jar
null
Details
string
$enctype= 'null'
Request body content type (for POST requests)
null
Details
array
$files= 'array()'
File upload arrays (used in POST requests)
An associative array, where each element is of the format: 'name' => array('filename.txt', 'text/plain', 'This is the actual file contents')
array()
Details
array
$headers= 'array()'
Associative array of request headers
array()
Details
string
$last_request= 'null'
The last HTTP request sent by the client, as string
null
Details
array
$paramsGet= 'array()'
Associative array of GET parameters
array()
Details
array
$paramsPost= 'array()'
Associative array of POST parameters
array()
Details
string
$raw_post_data= 'null'
The raw post data to send. Could be set by setRawData($data, $enctype).
null
Details
__construct(
\Zend_Uri_Http|string $uri
=
null, array $config
=
null
)
:
void
Constructor method. Will create a new HTTP client. Accepts the target URL and optionally configuration array.
Name | Type | Description |
---|---|---|
$uri | \Zend_Uri_Http|string | |
$config | array | Configuration key-value pairs. |

_detectFileMimeType(
string $file
)
:
string
Attempt to detect the MIME type of a file using available extensions
This method will try to detect the MIME type of a file. If the fileinfo extension is available, it will be used. If not, the mime_magic extension which is deprected but is still available in many PHP setups will be tried.
If neither extension is available, the default application/octet-stream MIME type will be returned
Name | Type | Description |
---|---|---|
$file | string | File path |
Type | Description |
---|---|
string | MIME type |

_flattenParametersArray(
array $parray, string $prefix
=
null
)
:
array
Convert an array of parameters into a flat array of (key, value) pairs
Will flatten a potentially multi-dimentional array of parameters (such as POST parameters) into a flat array of (key, value) paris. In case of multi-dimentional arrays, square brackets ([]) will be added to the key to indicate an array.
Name | Type | Description |
---|---|---|
$parray | array | |
$prefix | string |
Type | Description |
---|---|
array |

_getParametersRecursive(
array $parray, bool $urlencode
=
false
)
:
array
Helper method that gets a possibly multi-level parameters array (get or post) and flattens it.
The method returns an array of (key, value) pairs (because keys are not necessarily unique. If one of the parameters in as array, it will also add a [] suffix to the key.
This method is deprecated since Zend Framework 1.9 in favour of self::_flattenParametersArray() and will be dropped in 2.0
Name | Type | Description |
---|---|---|
$parray | array | The parameters array |
$urlencode | bool | Whether to urlencode the name and value |
Type | Description |
---|---|
array |

_setParameter(
string $type, string $name, string $value
)
:
null
Set a GET or POST parameter - used by SetParameterGet and SetParameterPost
Name | Type | Description |
---|---|---|
$type | string | GET or POST |
$name | string | |
$value | string |
Type | Description |
---|---|
null |

encodeAuthHeader(
string $user, string $password, string $type
=
self::AUTH_BASIC
)
:
string
Create a HTTP authentication "Authorization:" header according to the specified user, password and authentication method.
Name | Type | Description |
---|---|---|
$user | string | |
$password | string | |
$type | string |
Type | Description |
---|---|
string |
Exception | Description |
---|---|
\Zend_Http_Client_Exception |

encodeFormData(
string $boundary, string $name, mixed $value, string $filename
=
null, array $headers
=
array()
)
:
string
Encode data to a multipart/form-data part suitable for a POST request.
Name | Type | Description |
---|---|---|
$boundary | string | |
$name | string | |
$value | mixed | |
$filename | string | |
$headers | array | Associative array of optional headers @example ("Content-Transfer-Encoding" => "binary") |
Type | Description |
---|---|
string |

getAdapter(
)
:
\Zend_Http_Client_Adapter_Interface
Load the connection adapter
Type | Description |
---|---|
\Zend_Http_Client_Adapter_Interface | $adapter |

getCookieJar(
)
:
\Zend_Http_CookieJar|null
Return the current cookie jar or null if none.
Type | Description |
---|---|
\Zend_Http_CookieJar|null |

getHeader(
string $key
)
:
string|array|null
Get the value of a specific header
Note that if the header has more than one value, an array will be returned.
Name | Type | Description |
---|---|---|
$key | string |
Type | Description |
---|---|
string|array|null | The header value or null if it is not set |

getLastResponse(
)
:
\Zend_Http_Response
Get the last HTTP response received by this client
If $config['storeresponse'] is set to false, or no response was stored yet, will return null
Type | Description |
---|---|
\Zend_Http_Response | or null if none |

getRedirectionsCount(
)
:
int
Get the number of redirections done on the last request
Type | Description |
---|---|
int |

getStream(
)
:
boolean|string
Get status of streaming for received data
Type | Description |
---|---|
boolean|string |

getUnmaskStatus(
)
:
boolean
Returns the currently configured unmask status
Type | Description |
---|---|
boolean |

getUri(
boolean $as_string
=
false
)
:
\Zend_Uri_Http|string
Get the URI for the next request
Name | Type | Description |
---|---|---|
$as_string | boolean | If true, will return the URI as a string |
Type | Description |
---|---|
\Zend_Uri_Http|string |

request(
string $method
=
null
)
:
\Zend_Http_Response
Send the HTTP request and return an HTTP response object
Name | Type | Description |
---|---|---|
$method | string |
Type | Description |
---|---|
\Zend_Http_Response |
Exception | Description |
---|---|
\Zend_Http_Client_Exception |

resetParameters(
bool $clearAll
=
false
)
:
\Zend_Http_Client
Clear all GET and POST parameters
Should be used to reset the request parameters if the client is used for several concurrent requests.
clearAll parameter controls if we clean just parameters or also headers and last_*
Name | Type | Description |
---|---|---|
$clearAll | bool | Should all data be cleared? |
Type | Description |
---|---|
\Zend_Http_Client |

setAdapter(
\Zend_Http_Client_Adapter_Interface|string $adapter
)
:
null
Load the connection adapter
While this method is not called more than one for a client, it is seperated from ->request() to preserve logic and readability
Name | Type | Description |
---|---|---|
$adapter | \Zend_Http_Client_Adapter_Interface|string |
Type | Description |
---|---|
null |
Exception | Description |
---|---|
\Zend_Http_Client_Exception |

setAuth(
string|false $user, string $password
=
'', string $type
=
self::AUTH_BASIC
)
:
\Zend_Http_Client
Set HTTP authentication parameters
$type should be one of the supported types - see the self::AUTH_* constants.
To enable authentication:
$this->setAuth('shahar', 'secret', Zend_Http_Client::AUTH_BASIC);
To disable authentication:
$this->setAuth(false);
Name | Type | Description |
---|---|---|
$user | string|false | User name or false disable authentication |
$password | string | Password |
$type | string | Authentication type |
Type | Description |
---|---|
\Zend_Http_Client |
Exception | Description |
---|---|
\Zend_Http_Client_Exception |

setConfig(
\Zend_Config $config
=
array()
)
:
\Zend_Http_Client
Set configuration parameters for this HTTP client
Name | Type | Description |
---|---|---|
$config | \Zend_Config | | array $config |
Type | Description |
---|---|
\Zend_Http_Client |
Exception | Description |
---|---|
\Zend_Http_Client_Exception |

setCookie(
\Zend_Http_Cookie|string $cookie, string|null $value
=
null
)
:
\Zend_Http_Client
Add a cookie to the request. If the client has no Cookie Jar, the cookies will be added directly to the headers array as "Cookie" headers.
Name | Type | Description |
---|---|---|
$cookie | \Zend_Http_Cookie|string | |
$value | string|null | If "cookie" is a string, this is the cookie value. |
Type | Description |
---|---|
\Zend_Http_Client |
Exception | Description |
---|---|
\Zend_Http_Client_Exception |

setCookieJar(
\Zend_Http_CookieJar|boolean $cookiejar
=
true
)
:
\Zend_Http_Client
Set the HTTP client's cookie jar.
A cookie jar is an object that holds and maintains cookies across HTTP requests and responses.
Name | Type | Description |
---|---|---|
$cookiejar | \Zend_Http_CookieJar|boolean | Existing cookiejar object, true to create a new one, false to disable |
Type | Description |
---|---|
\Zend_Http_Client |
Exception | Description |
---|---|
\Zend_Http_Client_Exception |

setEncType(
string $enctype
=
self::ENC_URLENCODED
)
:
\Zend_Http_Client
Set the encoding type for POST data

setFileUpload(
string $filename, string $formname, string $data
=
null, string $ctype
=
null
)
:
\Zend_Http_Client
Set a file to upload (using a POST request)
Can be used in two ways:
Name | Type | Description |
---|---|---|
$filename | string | Name of file to upload, or name to save as |
$formname | string | Name of form element to send as |
$data | string | Data to send (if null, $filename is read and sent) |
$ctype | string | Content type to use (if $data is set and $ctype is null, will be application/octet-stream) |
Type | Description |
---|---|
\Zend_Http_Client |
Exception | Description |
---|---|
\Zend_Http_Client_Exception |

setHeaders(
string|array $name, mixed $value
=
null
)
:
\Zend_Http_Client
Set one or more request headers
This function can be used in several ways to set the client's request headers: 1. By providing two parameters: $name as the header to set (e.g. 'Host') and $value as it's value (e.g. 'www.example.com'). 2. By providing a single header string as the only parameter e.g. 'Host: www.example.com' 3. By providing an array of headers as the first parameter e.g. array('host' => 'www.example.com', 'x-foo: bar'). In This case the function will call itself recursively for each array item.
Name | Type | Description |
---|---|---|
$name | string|array | Header name, full header string ('Header: value') or an array of headers |
$value | mixed | Header value or null |
Type | Description |
---|---|
\Zend_Http_Client |
Exception | Description |
---|---|
\Zend_Http_Client_Exception |

setMethod(
string $method
=
self::GET
)
:
\Zend_Http_Client
Set the next request's method
Validated the passed method and sets it. If we have files set for POST requests, and the new method is not POST, the files are silently dropped.
Name | Type | Description |
---|---|---|
$method | string |
Type | Description |
---|---|
\Zend_Http_Client |
Exception | Description |
---|---|
\Zend_Http_Client_Exception |

setParameterGet(
string|array $name, string $value
=
null
)
:
\Zend_Http_Client
Set a GET parameter for the request. Wrapper around _setParameter
Name | Type | Description |
---|---|---|
$name | string|array | |
$value | string |
Type | Description |
---|---|
\Zend_Http_Client |

setParameterPost(
string|array $name, string $value
=
null
)
:
\Zend_Http_Client
Set a POST parameter for the request. Wrapper around _setParameter
Name | Type | Description |
---|---|---|
$name | string|array | |
$value | string |
Type | Description |
---|---|
\Zend_Http_Client |

setRawData(
string|resource $data, string $enctype
=
null
)
:
\Zend_Http_Client
Set the raw (already encoded) POST data.
This function is here for two reasons: 1. For advanced user who would like to set their own data, already encoded 2. For backwards compatibilty: If someone uses the old post($data) method. this method will be used to set the encoded data.
$data can also be stream (such as file) from which the data will be read.
Name | Type | Description |
---|---|---|
$data | string|resource | |
$enctype | string |
Type | Description |
---|---|
\Zend_Http_Client |

setStream(
string|boolean $streamfile
=
true
)
:
\Zend_Http_Client
Set streaming for received data
Name | Type | Description |
---|---|---|
$streamfile | string|boolean | Stream file, true for temp file, false/null for no streaming |
Type | Description |
---|---|
\Zend_Http_Client |

setUnmaskStatus(
boolean $status
=
true
)
:
\Zend_Http_Client
Set the unmask feature for GET parameters as array
Example: foo%5B0%5D=a&foo%5B1%5D=b becomes foo=a&foo=b
This is usefull for some services
Name | Type | Description |
---|---|---|
$status | boolean |
Type | Description |
---|---|
\Zend_Http_Client |

setUri(
\Zend_Uri_Http|string $uri
)
:
\Zend_Http_Client
Set the URI for the next request
Name | Type | Description |
---|---|---|
$uri | \Zend_Uri_Http|string |
Type | Description |
---|---|
\Zend_Http_Client |
Exception | Description |
---|---|
\Zend_Http_Client_Exception |