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 implemetation 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 persistance (using a Zend_Http_CookieJar object)
GET = 'GET'
HTTP request methods
POST = 'POST'
PUT = 'PUT'
HEAD = 'HEAD'
DELETE = 'DELETE'
TRACE = 'TRACE'
OPTIONS = 'OPTIONS'
CONNECT = 'CONNECT'
MERGE = 'MERGE'
AUTH_BASIC = 'basic'
Supported HTTP Authentication methods
HTTP_1 = '1.1'
HTTP protocol versions
HTTP_0 = '1.0'
CONTENT_TYPE = 'Content-Type'
Content attributes
CONTENT_LENGTH = 'Content-Length'
ENC_URLENCODED = 'application/x-www-form-urlencoded'
POST data encoding methods
ENC_FORMDATA = 'multipart/form-data'
resource $_fileInfoDb = 'null'
Fileinfo magic database resource
This varaiable is populated the first time _detectFileMimeType is called and is then reused on every call to this method
Zend_Http_Client_Adapter_Interface $adapter = 'null'
The adapter used to preform 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 $config = 'array'
Configuration array, set using the constructor or using ::setConfig()
Zend_Http_CookieJar $cookiejar = 'null'
The client's cookie jar
string $enctype = 'null'
Request body content type (for POST requests)
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 $headers = 'array'
Associative array of request headers
string $last_request = 'null'
The last HTTP request sent by the client, as string
Zend_Http_Response $last_response = 'null'
The last HTTP response received by the client
string $method = 'self'
HTTP request method
array $paramsGet = 'array'
Associative array of GET parameters
array $paramsPost = 'array'
Assiciative array of POST parameters
string $raw_post_data = 'null'
The raw post data to send. Could be set by setRawData($data, $enctype).
int $redirectCounter = '0'
Redirection counter
Zend_Uri_Http $uri = 'null'
Request URI
__construct(
Zend_Uri_Http|string $uri
=
null, array $config
=
null
)
:
Contructor method. Will create a new HTTP client. Accepts the target URL and optionally configuration array.
_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
_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.
_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
_openTempStream(
)
:
resource
Create temporary stream
_prepareBody(
)
:
string
Prepare the request body (for POST and PUT requests)
_prepareHeaders(
)
:
array
Prepare the request headers
_setParameter(
string $type, string $name, string $value
)
:
null
Set a GET or POST parameter - used by SetParameterGet and SetParameterPost
encodeAuthHeader(
string $user, string $password, string $type
=
self
)
:
string
Create a HTTP authentication "Authorization:" header according to the specified user, password and authentication method.
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.
getAdapter(
)
:
Zend_Http_Client_Adapter_Interface
Load the connection adapter
getCookieJar(
)
:
Zend_Http_CookieJar|null
Return the current cookie jar or null if none.
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.
getLastRequest(
)
:
string
Get the last HTTP request as string
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
getRedirectionsCount(
)
:
int
Get the number of redirections done on the last request
getStream(
)
:
boolean|string
Get status of streaming for received data
getUri(
boolean $as_string
=
false
)
:
Zend_Uri_Http|string
Get the URI for the next request
request(
string $method
=
null
)
:
Zend_Http_Response
Send the HTTP request and return an HTTP response object
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_*
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
setAuth(
string|false $user, string $password, string $type
=
self
)
:
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);
setConfig(
Zend_Config $config
=
array
)
:
Zend_Http_Client
Set configuration parameters for this HTTP client
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.
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.
setEncType(
string $enctype
=
self
)
:
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:
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 (eg. 'Host') and $value as it's value (eg. 'www.example.com'). 2. By providing a single header string as the only parameter eg. 'Host: www.example.com' 3. By providing an array of headers as the first parameter eg. array('host' => 'www.example.com', 'x-foo: bar'). In This case the function will call itself recursively for each array item.
setMethod(
string $method
=
self
)
:
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.
setParameterGet(
string|array $name, string $value
=
null
)
:
Zend_Http_Client
Set a GET parameter for the request. Wrapper around _setParameter
setParameterPost(
string|array $name, string $value
=
null
)
:
Zend_Http_Client
Set a POST parameter for the request. Wrapper around _setParameter
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.
setStream(
string|boolean $streamfile
=
true
)
:
Zend_Http_Client
Set streaming for received data
setUri(
Zend_Uri_Http|string $uri
)
:
Zend_Http_Client
Set the URI for the next request