Title: Session::request
Published: March 29, 2023
Last modified: November 8, 2023

---

# Session::request( string $url, array $headers = array(), array|null $data = array(), string $type = WpOrgRequestsRequests::GET, array $options = array() ): WpOrgRequestsResponse

## In this article

 * [Description](https://developer.wordpress.org/reference/classes/wporg-requests-session/request/?output_format=md#description)
    - [See also](https://developer.wordpress.org/reference/classes/wporg-requests-session/request/?output_format=md#see-also)
 * [Parameters](https://developer.wordpress.org/reference/classes/wporg-requests-session/request/?output_format=md#parameters)
 * [Return](https://developer.wordpress.org/reference/classes/wporg-requests-session/request/?output_format=md#return)
 * [Source](https://developer.wordpress.org/reference/classes/wporg-requests-session/request/?output_format=md#source)

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

Main interface for HTTP requests

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

This method initiates a request and sends it via a transport before parsing.

### 󠀁[See also](https://developer.wordpress.org/reference/classes/wporg-requests-session/request/?output_format=md#see-also)󠁿

 * [WpOrgRequestsRequests::request()](https://developer.wordpress.org/reference/classes/WpOrgRequestsRequests/request/)

## 󠀁[Parameters](https://developer.wordpress.org/reference/classes/wporg-requests-session/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 WpOrgRequestsRequests constants)

Default:`WpOrgRequestsRequests::GET`

`$options`arrayoptional

Options for the request (see [WpOrgRequestsRequests::request()](https://developer.wordpress.org/reference/classes/WpOrgRequestsRequests/request/))

Default:`array()`

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

 WpOrgRequestsResponse

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

    ```php
    public function request($url, $headers = [], $data = [], $type = Requests::GET, $options = []) {
    	$request = $this->merge_request(compact('url', 'headers', 'data', 'options'));

    	return Requests::request($request['url'], $request['headers'], $request['data'], $type, $request['options']);
    }
    ```

[View all references](https://developer.wordpress.org/reference/files/wp-includes/requests/src/session.php/)
[View on Trac](https://core.trac.wordpress.org/browser/tags/7.1/src/wp-includes/Requests/src/Session.php#L229)
[View on GitHub](https://github.com/WordPress/wordpress-develop/blob/7.1/src/wp-includes/Requests/src/Session.php#L229-L233)

## User Contributed Notes

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