Title: WP_HTTP_Requests_Response
Published: August 16, 2016
Last modified: August 20, 2026

---

# class WP_HTTP_Requests_Response {}

## In this article

 * [Description](https://developer.wordpress.org/reference/classes/wp_http_requests_response/?output_format=md#description)
    - [See also](https://developer.wordpress.org/reference/classes/wp_http_requests_response/?output_format=md#see-also)
 * [Methods](https://developer.wordpress.org/reference/classes/wp_http_requests_response/?output_format=md#methods)
 * [Source](https://developer.wordpress.org/reference/classes/wp_http_requests_response/?output_format=md#source)
 * [Related](https://developer.wordpress.org/reference/classes/wp_http_requests_response/?output_format=md#related)
 * [Changelog](https://developer.wordpress.org/reference/classes/wp_http_requests_response/?output_format=md#changelog)

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

Core wrapper object for a WpOrg\Requests\Response for standardization.

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

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

 * [WP_HTTP_Response](https://developer.wordpress.org/reference/classes/wp_http_response/)

## 󠀁[Methods](https://developer.wordpress.org/reference/classes/wp_http_requests_response/?output_format=md#methods)󠁿

| Name | Description | 
| [WP_HTTP_Requests_Response::__construct](https://developer.wordpress.org/reference/classes/wp_http_requests_response/__construct/) | Constructor. | 
| [WP_HTTP_Requests_Response::get_cookies](https://developer.wordpress.org/reference/classes/wp_http_requests_response/get_cookies/) | Retrieves cookies from the response. | 
| [WP_HTTP_Requests_Response::get_data](https://developer.wordpress.org/reference/classes/wp_http_requests_response/get_data/) | Retrieves the response data. | 
| [WP_HTTP_Requests_Response::get_headers](https://developer.wordpress.org/reference/classes/wp_http_requests_response/get_headers/) | Retrieves headers associated with the response. | 
| [WP_HTTP_Requests_Response::get_response_object](https://developer.wordpress.org/reference/classes/wp_http_requests_response/get_response_object/) | Retrieves the response object for the request. | 
| [WP_HTTP_Requests_Response::get_status](https://developer.wordpress.org/reference/classes/wp_http_requests_response/get_status/) | Retrieves the HTTP return code for the response. | 
| [WP_HTTP_Requests_Response::header](https://developer.wordpress.org/reference/classes/wp_http_requests_response/header/) | Sets a single HTTP header. | 
| [WP_HTTP_Requests_Response::set_data](https://developer.wordpress.org/reference/classes/wp_http_requests_response/set_data/) | Sets the response data. | 
| [WP_HTTP_Requests_Response::set_headers](https://developer.wordpress.org/reference/classes/wp_http_requests_response/set_headers/) | Sets all header values. | 
| [WP_HTTP_Requests_Response::set_status](https://developer.wordpress.org/reference/classes/wp_http_requests_response/set_status/) | Sets the 3-digit HTTP status code. | 
| [WP_HTTP_Requests_Response::to_array](https://developer.wordpress.org/reference/classes/wp_http_requests_response/to_array/) | Converts the object to a [WP_Http](https://developer.wordpress.org/reference/classes/wp_http/) response array. |

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

    ```php
    class WP_HTTP_Requests_Response extends WP_HTTP_Response {
    	/**
    	 * Requests Response object.
    	 *
    	 * @since 4.6.0
    	 * @var \WpOrg\Requests\Response
    	 */
    	protected $response;

    	/**
    	 * Filename the response was saved to.
    	 *
    	 * @since 4.6.0
    	 * @var string|null
    	 */
    	protected $filename;

    	/**
    	 * Constructor.
    	 *
    	 * @since 4.6.0
    	 *
    	 * @param \WpOrg\Requests\Response $response HTTP response.
    	 * @param string                   $filename Optional. File name. Default empty.
    	 */
    	public function __construct( WpOrg\Requests\Response $response, $filename = '' ) {
    		$this->response = $response;
    		$this->filename = $filename;
    	}

    	/**
    	 * Retrieves the response object for the request.
    	 *
    	 * @since 4.6.0
    	 *
    	 * @return WpOrg\Requests\Response HTTP response.
    	 */
    	public function get_response_object() {
    		return $this->response;
    	}

    	/**
    	 * Retrieves headers associated with the response.
    	 *
    	 * @since 4.6.0
    	 *
    	 * @return \WpOrg\Requests\Utility\CaseInsensitiveDictionary Map of header name to header value.
    	 */
    	public function get_headers() {
    		// Ensure headers remain case-insensitive.
    		$converted = new WpOrg\Requests\Utility\CaseInsensitiveDictionary();

    		foreach ( $this->response->headers->getAll() as $key => $value ) {
    			if ( count( $value ) === 1 ) {
    				$converted[ $key ] = $value[0];
    			} else {
    				$converted[ $key ] = $value;
    			}
    		}

    		return $converted;
    	}

    	/**
    	 * Sets all header values.
    	 *
    	 * @since 4.6.0
    	 *
    	 * @param array $headers Map of header name to header value.
    	 */
    	public function set_headers( $headers ) {
    		$this->response->headers = new WpOrg\Requests\Response\Headers( $headers );
    	}

    	/**
    	 * Sets a single HTTP header.
    	 *
    	 * @since 4.6.0
    	 *
    	 * @param string $key     Header name.
    	 * @param string $value   Header value.
    	 * @param bool   $replace Optional. Whether to replace an existing header of the same name.
    	 *                        Default true.
    	 */
    	public function header( $key, $value, $replace = true ) {
    		if ( $replace ) {
    			unset( $this->response->headers[ $key ] );
    		}

    		$this->response->headers[ $key ] = $value;
    	}

    	/**
    	 * Retrieves the HTTP return code for the response.
    	 *
    	 * @since 4.6.0
    	 *
    	 * @return int The 3-digit HTTP status code.
    	 */
    	public function get_status() {
    		return $this->response->status_code;
    	}

    	/**
    	 * Sets the 3-digit HTTP status code.
    	 *
    	 * @since 4.6.0
    	 *
    	 * @param int $code HTTP status.
    	 */
    	public function set_status( $code ) {
    		$this->response->status_code = absint( $code );
    	}

    	/**
    	 * Retrieves the response data.
    	 *
    	 * @since 4.6.0
    	 *
    	 * @return string Response data.
    	 */
    	public function get_data() {
    		return $this->response->body;
    	}

    	/**
    	 * Sets the response data.
    	 *
    	 * @since 4.6.0
    	 *
    	 * @param string $data Response data.
    	 */
    	public function set_data( $data ) {
    		$this->response->body = $data;
    	}

    	/**
    	 * Retrieves cookies from the response.
    	 *
    	 * @since 4.6.0
    	 *
    	 * @return WP_Http_Cookie[] List of cookie objects.
    	 */
    	public function get_cookies() {
    		$cookies = array();
    		foreach ( $this->response->cookies as $cookie ) {
    			$cookies[] = new WP_Http_Cookie(
    				array(
    					'name'      => $cookie->name,
    					'value'     => urldecode( $cookie->value ),
    					'expires'   => $cookie->attributes['expires'] ?? null,
    					'path'      => $cookie->attributes['path'] ?? null,
    					'domain'    => $cookie->attributes['domain'] ?? null,
    					'host_only' => $cookie->flags['host-only'] ?? null,
    				)
    			);
    		}

    		return $cookies;
    	}

    	/**
    	 * Converts the object to a WP_Http response array.
    	 *
    	 * @since 4.6.0
    	 *
    	 * @return array WP_Http response array, per WP_Http::request().
    	 */
    	public function to_array() {
    		return array(
    			'headers'  => $this->get_headers(),
    			'body'     => $this->get_data(),
    			'response' => array(
    				'code'    => $this->get_status(),
    				'message' => get_status_header_desc( $this->get_status() ),
    			),
    			'cookies'  => $this->get_cookies(),
    			'filename' => $this->filename,
    		);
    	}
    }
    ```

[View all references](https://developer.wordpress.org/reference/files/wp-includes/class-wp-http-requests-response.php/)
[View on Trac](https://core.trac.wordpress.org/browser/tags/7.1/src/wp-includes/class-wp-http-requests-response.php#L17)
[View on GitHub](https://github.com/WordPress/wordpress-develop/blob/7.1/src/wp-includes/class-wp-http-requests-response.php#L17-L197)

## 󠀁[Related](https://developer.wordpress.org/reference/classes/wp_http_requests_response/?output_format=md#related)󠁿

| Uses | Description | 
| [WP_HTTP_Response](https://developer.wordpress.org/reference/classes/wp_http_response/)`wp-includes/class-wp-http-response.php` |

Core class used to prepare HTTP responses.

  |

## 󠀁[Changelog](https://developer.wordpress.org/reference/classes/wp_http_requests_response/?output_format=md#changelog)󠁿

| Version | Description | 
| [4.6.0](https://developer.wordpress.org/reference/since/4.6.0/) | Introduced. |

## User Contributed Notes

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