Changeset 37989
- Timestamp:
- 07/06/2016 05:50:44 PM (8 years ago)
- Location:
- trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/class-http.php
r37674 r37989 349 349 350 350 try { 351 $re sponse = Requests::request( $url, $headers, $data, $type, $options );351 $requests_response = Requests::request( $url, $headers, $data, $type, $options ); 352 352 353 353 // Convert the response into an array 354 $response = new WP_HTTP_Requests_Response( $response, $r['filename'] ); 354 $http_response = new WP_HTTP_Requests_Response( $requests_response, $r['filename'] ); 355 $response = $http_response->to_array(); 356 357 // Add the original object to the array. 358 $response['http_response'] = $http_response; 355 359 } 356 360 catch ( Requests_Exception $e ) { … … 383 387 ), 384 388 'cookies' => array(), 389 'http_response' => null, 385 390 ); 386 391 } -
trunk/src/wp-includes/class-wp-http-requests-response.php
r37431 r37989 2 2 3 3 /** 4 * Wrapper object for a Requests_Response for compatibility.4 * Wrapper object for a Requests_Response for standardisation. 5 5 * 6 6 * @package WordPress … … 8 8 * @since 4.6.0 9 9 */ 10 class WP_HTTP_Requests_Response extends WP_HTTP_Response implements ArrayAccess{10 class WP_HTTP_Requests_Response extends WP_HTTP_Response { 11 11 /** 12 12 * Requests Response object. … … 143 143 144 144 /** 145 * C heck if an ArrayAccess offset exists.145 * Convert the object to a WP_Http response array. 146 146 * 147 * This is for array access back-compat. 148 * 149 * @param string|int $key Array offset. 150 * @return bool True if the offset exists, false otherwise. 147 * @return array WP_Http response array, per WP_Http::request(). 151 148 */ 152 public function offsetExists( $key ) { 153 $allowed = array( 'headers', 'body', 'response', 'cookies', 'filename' ); 154 return in_array( $key, $allowed ); 155 } 156 157 /** 158 * Get an ArrayAccess value. 159 * 160 * This is for array access back-compat. 161 * 162 * @param string|int $key Array offset to get. 163 * @return mixed Value if the key is a valid offset, null if invalid. 164 */ 165 public function offsetGet( $key ) { 166 switch ( $key ) { 167 case 'headers': 168 return $this->get_headers(); 169 170 case 'body': 171 return $this->get_data(); 172 173 case 'response': 174 return array( 175 'code' => $this->get_status(), 176 'message' => get_status_header_desc( $this->get_status() ), 177 ); 178 179 case 'cookies': 180 return $this->get_cookies(); 181 182 case 'filename': 183 return $this->filename; 184 } 185 186 return null; 187 } 188 189 /** 190 * Set an ArrayAccess value. 191 * 192 * This is for array access back-compat. 193 * 194 * @param string|int $key Array offset to set. 195 * @param mixed $value Value to set. 196 */ 197 public function offsetSet( $key, $value ) { 198 switch ( $key ) { 199 case 'headers': 200 $this->set_headers( $value ); 201 break; 202 203 case 'body': 204 $this->set_data( $value ); 205 break; 206 207 case 'response': 208 if ( isset( $value['code'] ) ) { 209 $this->set_status( $value['code'] ); 210 } 211 break; 212 213 case 'filename': 214 $this->filename = $value; 215 break; 216 } 217 } 218 219 /** 220 * Unset an ArrayAccess value. 221 * 222 * This is for array access back-compat. 223 * 224 * @param string|int $key Array offset to remove. 225 */ 226 public function offsetUnset( $key ) { 227 $this->offsetSet( $key, null ); 149 public function to_array() { 150 return array( 151 'headers' => $this->get_headers(), 152 'body' => $this->get_data(), 153 'response' => array( 154 'code' => $this->get_status(), 155 'message' => get_status_header_desc( $this->get_status() ), 156 ), 157 'cookies' => $this->get_cookies(), 158 'filename' => $this->filename, 159 ); 228 160 } 229 161 } -
trunk/tests/phpunit/tests/http/functions.php
r37428 r37989 23 23 $this->assertEquals( '40148', $headers['content-length'] ); 24 24 $this->assertEquals( '200', wp_remote_retrieve_response_code( $response ) ); 25 } 26 27 /** 28 * @depends test_head_request 29 */ 30 function test_returns_array() { 31 $url = 'https://asdftestblog1.files.wordpress.com/2007/09/2007-06-30-dsc_4700-1.jpg'; 32 $response = wp_remote_head( $url ); 33 $this->assertInternalType( 'array', $response ); 25 34 } 26 35
Note: See TracChangeset
for help on using the changeset viewer.