Requests for PHP
Inspired by Requests for Python.
Based on concepts from SimplePie_File, RequestCore and WP_Http.
| package | Requests |
|---|
add_transport(string $transport)
stringTransport class to add, must support the Requests_Transport interface
autoloader(string $class)
Register this with \register_autoloader() if you'd like to avoid having to create your own.
(You can also use spl_autoload_register directly if you'd prefer.)
| codeCoverageIgnore |
|---|
stringClass name to load
compatible_gzinflate(string $gzData) : string | boolean
Certain Servers will return deflated data with headers which PHP's gzinflate() function cannot handle out of the box. The following function has been created from various snippets on the gzinflate() PHP documentation.
Warning: Magic numbers within. Due to the potential different formats that the compressed data may be returned in, some "magic offsets" are needed to ensure proper decompression takes place. For a simple progmatic way to determine the magic offset in use, see: https://core.trac.wordpress.org/ticket/18273
| since | 2.8.1 |
|---|---|
| link | https://core.trac.wordpress.org/ticket/18273 |
| link | https://secure.php.net/manual/en/function.gzinflate.php#70875 |
| link | https://secure.php.net/manual/en/function.gzinflate.php#77336 |
stringString to decompress.
stringbooleanFalse on failure.decompress(string $data) : string
Implements gzip, compress and deflate. Guesses which it is by attempting to decode.
stringCompressed data in one of the above formats
stringDecompressed stringdelete($url, $headers= array(), $options= array())
flatten(array $array) : array
arrayDictionary of header values
arrayList of headersflattern(array $array) : array
| codeCoverageIgnore | |
|---|---|
| deprecated | Misspelling of {@see Requests::flatten} |
arrayDictionary of header values
arrayList of headersget($url, $headers= array(), $options= array())
get_certificate_path() : string
stringDefault certificate path.head($url, $headers= array(), $options= array())
match_domain($host, $reference)
parse_multiple(string $response, array $request) : null
Internal use only. Converts a raw HTTP response to a Requests_Response while still executing a multiple request.
stringFull response text including headers and body (will be overwritten with Response instance)
arrayRequest data as passed into {@see Requests::request_multiple()}
null`$response` is either set to a Requests_Response instance, or a Requests_Exception objectpatch($url, $headers, $data= array(), $options= array())
Note: Unlike \post and \put, $headers is required, as the
specification recommends that should send an ETag
| link | https://tools.ietf.org/html/rfc5789 |
|---|
post($url, $headers= array(), $data= array(), $options= array())
put($url, $headers= array(), $data= array(), $options= array())
register_autoloader()
| codeCoverageIgnore |
|---|
request(string $url, array $headers= array(), array|null $data= array(), string $type= self::GET, array $options= array()) : \Requests_Response
This method initiates a request and sends it via a transport before parsing.
The $options parameter takes an associative array with the following
options:
timeout: How long should we wait for a response?
Note: for cURL, a minimum of 1 second applies, as DNS resolution
operates at second-resolution only.
(float, seconds with a millisecond precision, default: 10, example: 0.01)connect_timeout: How long should we wait while trying to connect?
(float, seconds with a millisecond precision, default: 10, example: 0.01)useragent: Useragent to send to the server
(string, default: php-requests/$version)follow_redirects: Should we follow 3xx redirects?
(boolean, default: true)redirects: How many times should we redirect before erroring?
(integer, default: 10)blocking: Should we block processing on this request?
(boolean, default: true)filename: File to stream the body to instead.
(string|boolean, default: false)auth: Authentication handler or array of user/password details to use
for Basic authentication
(Requests_Auth|array|boolean, default: false)proxy: Proxy details to use for proxy by-passing and authentication
(Requests_Proxy|array|string|boolean, default: false)max_bytes: Limit for the response body size.
(integer|boolean, default: false)idn: Enable IDN parsing
(boolean, default: true)transport: Custom transport. Either a class name, or a
transport object. Defaults to the first working transport from
\getTransport()
(string|Requests_Transport, default: \getTransport())hooks: Hooks handler.
(Requests_Hooker, default: new Requests_Hooks())verify: Should we verify SSL certificates? Allows passing in a custom
certificate file as a string. (Using true uses the system-wide root
certificate store instead, but this may have different behaviour
across transports.)
(string|boolean, default: library/Requests/Transport/cacert.pem)verifyname: Should we verify the common name in the SSL certificate?
(boolean: default, true)data_format: How should we send the $data parameter?
(string, one of 'query' or 'body', default: 'query' for
HEAD/GET/DELETE, 'body' for POST/PUT/OPTIONS/PATCH)stringURL to request
arrayExtra headers to send with the request
arraynullData to send either as a query string for GET/HEAD requests, or in the body for POST requests
stringHTTP request type (use Requests constants)
arrayOptions for the request (see description for more information)
\Requests_Exception |
On invalid URLs (`nonhttp`) |
|---|
\Requests_Responserequest_multiple(array $requests, array $options = array()) : array
The $requests parameter takes an associative or indexed array of
request fields. The key of each request can be used to match up the
request with the returned data, or with the request passed into your
multiple.request.complete callback.
The request fields value is an associative array with the following keys:
url: Request URL Same as the $url parameter to
\Requests::request
(string, required)headers: Associative array of header fields. Same as the $headers
parameter to \Requests::request
(array, default: array())data: Associative array of data fields or a string. Same as the
$data parameter to \Requests::request
(array|string, default: array())type: HTTP request type (use Requests constants). Same as the $type
parameter to \Requests::request
(string, default: Requests::GET)cookies: Associative array of cookie name to value, or cookie jar.
(array|Requests_Cookie_Jar)If the $options parameter is specified, individual requests will
inherit options from it. This can be used to use a single hooking system,
or set all the types to Requests::POST, for example.
In addition, the $options parameter takes the following global options:
complete: A callback for when a request is complete. Takes two
parameters, a Requests_Response/Requests_Exception reference, and the
ID from the request array (Note: this can also be overridden on a
per-request basis, although that's a little silly)
(callback)arrayRequests data (see description for more information)
arrayGlobal and default options (see {@see Requests::request})
arrayResponses (either Requests_Response or a Requests_Exception object)set_certificate_path(string $path)
stringCertificate path, pointing to a PEM file.
trace($url, $headers= array(), $options= array())
decode_chunked(string $data) : string
get_transport($capabilities = array()) : \Requests_Transport
\Requests_Exception |
If no valid transport is found (`notransport`) |
|---|
\Requests_Transportparse_response(string $headers, string $url, array $req_headers, array $req_data, array $options) : \Requests_Response
stringFull response text including headers and body
stringOriginal request URL
arrayOriginal $headers array passed to {@link request()}, in case we need to follow redirects
arrayOriginal $data array passed to {@link request()}, in case we need to follow redirects
arrayOriginal $options array passed to {@link request()}, in case we need to follow redirects
\Requests_Exception |
On missing head/body separator (`requests.no_crlf_separator`) |
|---|---|
\Requests_Exception |
On missing head/body separator (`noversion`) |
\Requests_Exception |
On missing head/body separator (`toomanyredirects`) |
\Requests_Responseset_defaults(string $url, array $headers, array|null $data, string $type, array $options) : array
stringURL to request
arrayExtra headers to send with the request
arraynullData to send either as a query string for GET/HEAD requests, or in the body for POST requests
stringHTTP request type
arrayOptions for the request
array$options__construct()
| codeCoverageIgnore |
|---|
$transport : array
array()Use \get_transport() instead
$transports : array
array()BUFFER_SIZE = 1160 : integer
DELETE = 'DELETE' : string
GET = 'GET' : string
HEAD = 'HEAD' : string
OPTIONS = 'OPTIONS' : string
POST = 'POST' : string
PUT = 'PUT' : string
TRACE = 'TRACE' : string
VERSION = '1.7-3470169' : string