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

---

# Session::__construct( string|WpOrgRequestsStringable|null $url = null, array $headers = array(), array $data = array(), array $options = array() )

## In this article

 * [Parameters](https://developer.wordpress.org/reference/classes/wporg-requests-session/__construct/?output_format=md#parameters)
 * [Source](https://developer.wordpress.org/reference/classes/wporg-requests-session/__construct/?output_format=md#source)

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

Create a new session

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

 `$url`string|WpOrgRequestsStringable|nulloptional

Base URL for requests

Default:`null`

`$headers`arrayoptional

Default headers for requests

Default:`array()`

`$data`arrayoptional

Default data for requests

Default:`array()`

`$options`arrayoptional

Default options for requests

Default:`array()`

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

    ```php
    public function __construct($url = null, $headers = [], $data = [], $options = []) {
    	if ($url !== null && InputValidator::is_string_or_stringable($url) === false) {
    		throw InvalidArgument::create(1, '$url', 'string|Stringable|null', gettype($url));
    	}

    	if (is_array($headers) === false) {
    		throw InvalidArgument::create(2, '$headers', 'array', gettype($headers));
    	}

    	if (is_array($data) === false) {
    		throw InvalidArgument::create(3, '$data', 'array', gettype($data));
    	}

    	if (is_array($options) === false) {
    		throw InvalidArgument::create(4, '$options', 'array', gettype($options));
    	}

    	$this->url     = $url;
    	$this->headers = $headers;
    	$this->data    = $data;
    	$this->options = $options;

    	if (empty($this->options['cookies'])) {
    		$this->options['cookies'] = new Jar();
    	}
    }
    ```

[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.0/src/wp-includes/Requests/src/Session.php#L79)
[View on GitHub](https://github.com/WordPress/wordpress-develop/blob/7.0/src/wp-includes/Requests/src/Session.php#L79-L104)

## User Contributed Notes

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