Title: Requests::request
Published: August 16, 2016
Last modified: November 2, 2022

---

# Requests::request( string $url, array $headers = array(), array|null $data = array(), string $type = self::GET, array $options = array() ): 󠀁[Requests_Response](https://developer.wordpress.org/reference/classes/requests_response/)󠁿

## In this article

 * [Description](https://developer.wordpress.org/reference/classes/Requests/request/?output_format=md#description)
 * [Parameters](https://developer.wordpress.org/reference/classes/Requests/request/?output_format=md#parameters)
 * [Return](https://developer.wordpress.org/reference/classes/Requests/request/?output_format=md#return)
 * [Source](https://developer.wordpress.org/reference/classes/Requests/request/?output_format=md#source)

[ Back to top](https://developer.wordpress.org/reference/classes/Requests/request/?output_format=md#wp--skip-link--target)

Main interface for HTTP requests

## 󠀁[Description](https://developer.wordpress.org/reference/classes/Requests/request/?output_format=md#description)󠁿

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()](https://developer.wordpress.org/reference/functions/gettransport/)(
   string|Requests_Transport, default: [getTransport()](https://developer.wordpress.org/reference/functions/gettransport/))
 * `hooks`: Hooks handler.
   (Requests_Hooker, default: new [Requests_Hooks](https://developer.wordpress.org/reference/classes/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)

## 󠀁[Parameters](https://developer.wordpress.org/reference/classes/Requests/request/?output_format=md#parameters)󠁿

 `$url`stringrequired

URL to request

`$headers`arrayoptional

Extra headers to send with the request

Default:`array()`

`$data`array|nulloptional

Data to send either as a query string for GET/HEAD requests, or in the body for 
POST requests

Default:`array()`

`$type`stringoptional

HTTP request type (use Requests constants)

Default:`self::GET`

`$options`arrayoptional

Options for the request (see description for more information)

Default:`array()`

## 󠀁[Return](https://developer.wordpress.org/reference/classes/Requests/request/?output_format=md#return)󠁿

 [Requests_Response](https://developer.wordpress.org/reference/classes/requests_response/)

## 󠀁[Source](https://developer.wordpress.org/reference/classes/Requests/request/?output_format=md#source)󠁿

[View all references](https://developer.wordpress.org/reference/files/wp-includes/class-requests.php/)
[View on Trac](https://core.trac.wordpress.org/browser/tags/6.9.4/src/wp-includes/class-requests.php#L359)

## User Contributed Notes

You must [log in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fdeveloper.wordpress.org%2Freference%2Fclasses%2Frequests%2Frequest%2F)
before being able to contribute a note or feedback.