Index: http.php =================================================================== --- http.php (revision 10116) +++ http.php (working copy) @@ -396,7 +396,7 @@ $body = str_replace(array("\r\n", "\r"), "\n", $body); // The body is not chunked encoding or is malformed. if ( ! preg_match( '/^[0-9a-f]+(\s|\n)+/mi', trim($body) ) ) - return false; + return $body; $parsedBody = ''; //$parsedHeaders = array(); Unsupported @@ -672,7 +672,11 @@ if ( function_exists('stream_get_meta_data') ) { $meta = stream_get_meta_data($handle); $theHeaders = $meta['wrapper_data']; + if( isset( $meta['wrapper_data']['headers'] ) ) + $theHeaders = $meta['wrapper_data']['headers']; } else { + if( ! isset( $http_response_header ) ) + global $http_response_header; $theHeaders = $http_response_header; } @@ -793,10 +797,21 @@ $strResponse = stream_get_contents($handle); $meta = stream_get_meta_data($handle); - $processedHeaders = WP_Http::processHeaders($meta['wrapper_data']); + echo 'Raw:
'; + var_dump($strResponse); + echo ''; + $processedHeaders = array(); + if( isset( $meta['wrapper_data']['headers'] ) ) + $processedHeaders = WP_Http::processHeaders($meta['wrapper_data']['headers']); + else + $processedHeaders = WP_Http::processHeaders($meta['wrapper_data']); + if ( ! empty( $strResponse ) && isset( $processedHeaders['headers']['transfer-encoding'] ) && 'chunked' == $processedHeaders['headers']['transfer-encoding'] ) $strResponse = WP_Http::chunkTransferDecode($strResponse); + echo 'end:
'; + var_dump($strResponse); + echo ''; fclose($handle); @@ -1031,7 +1046,7 @@ return new WP_Error('http_request_failed', $curl_error); if ( in_array( curl_getinfo( $handle, CURLINFO_HTTP_CODE ), array(301, 302) ) ) return new WP_Error('http_request_failed', __('Too many redirects.')); - + $theHeaders = array( 'headers' => array() ); $theBody = ''; }