Title: Response::__construct
Published: May 20, 2026
Last modified: August 20, 2026

---

# Response::__construct( int $status = 200, array $headers = [], string|resource|WordPressAiClientDependenciesPsrHttpMessageStreamInterface|null $body = null, string $version = '1.1', string|null $reason = null )

## In this article

 * [Parameters](https://developer.wordpress.org/reference/classes/wordpress-aiclientdependencies-nyholm-psr7-response/__construct/?output_format=md#parameters)
 * [Source](https://developer.wordpress.org/reference/classes/wordpress-aiclientdependencies-nyholm-psr7-response/__construct/?output_format=md#source)
 * [Related](https://developer.wordpress.org/reference/classes/wordpress-aiclientdependencies-nyholm-psr7-response/__construct/?output_format=md#related)

[ Back to top](https://developer.wordpress.org/reference/classes/wordpress-aiclientdependencies-nyholm-psr7-response/__construct/?output_format=md#wp--skip-link--target)

## 󠀁[Parameters](https://developer.wordpress.org/reference/classes/wordpress-aiclientdependencies-nyholm-psr7-response/__construct/?output_format=md#parameters)󠁿

 `$status`intoptional

Status code

Default:`200`

`$headers`arrayoptional

Response headers

Default:`[]`

`$body`string|resource|WordPressAiClientDependenciesPsrHttpMessageStreamInterface
|nulloptional

Response body

Default:`null`

`$version`stringoptional

Protocol version

Default:`'1.1'`

`$reason`string|nulloptional

Reason phrase (when empty a default will be used based on the status code)

Default:`null`

## 󠀁[Source](https://developer.wordpress.org/reference/classes/wordpress-aiclientdependencies-nyholm-psr7-response/__construct/?output_format=md#source)󠁿

    ```php
    public function __construct(int $status = 200, array $headers = [], $body = null, string $version = '1.1', ?string $reason = null)
    {
        // If we got no body, defer initialization of the stream until Response::getBody()
        if ('' !== $body && null !== $body) {
            $this->stream = Stream::create($body);
        }
        $this->statusCode = $status;
        $this->setHeaders($headers);
        if (null === $reason && isset(self::PHRASES[$this->statusCode])) {
            $this->reasonPhrase = self::PHRASES[$status];
        } else {
            $this->reasonPhrase = $reason ?? '';
        }
        $this->protocol = $version;
    }
    ```

[View all references](https://developer.wordpress.org/reference/files/wp-includes/php-ai-client/third-party/nyholm/psr7/response.php/)
[View on Trac](https://core.trac.wordpress.org/browser/tags/7.1/src/wp-includes/php-ai-client/third-party/Nyholm/Psr7/Response.php#L31)
[View on GitHub](https://github.com/WordPress/wordpress-develop/blob/7.1/src/wp-includes/php-ai-client/third-party/Nyholm/Psr7/Response.php#L31-L45)

## 󠀁[Related](https://developer.wordpress.org/reference/classes/wordpress-aiclientdependencies-nyholm-psr7-response/__construct/?output_format=md#related)󠁿

| Uses | Description | 
| [Stream::create()](https://developer.wordpress.org/reference/classes/wordpress-aiclientdependencies-nyholm-psr7-stream/create/)`wp-includes/php-ai-client/third-party/Nyholm/Psr7/Stream.php` |

Creates a new PSR-7 stream.

  |

| Used by | Description | 
| [HttplugFactory::createResponse()](https://developer.wordpress.org/reference/classes/wordpress-aiclientdependencies-nyholm-psr7-factory-httplugfactory/createresponse/)`wp-includes/php-ai-client/third-party/Nyholm/Psr7/Factory/HttplugFactory.php` |  | 
| [Psr17Factory::createResponse()](https://developer.wordpress.org/reference/classes/wordpress-aiclientdependencies-nyholm-psr7-factory-psr17factory/createresponse/)`wp-includes/php-ai-client/third-party/Nyholm/Psr7/Factory/Psr17Factory.php` |  |

## User Contributed Notes

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