Make WordPress Core

Ticket #4779: 4779.r8620.diff

File 4779.r8620.diff, 22.0 KB (added by santosj, 16 years ago)

Patch merges headers and body into $args, also adds support for chunked transfer-encoding decoding, based off of r8620

  • http.php

     
    137137        /**
    138138         * Send a HTTP request to a URI.
    139139         *
     140         * The body and headers are part of the arguments. The 'body' argument is
     141         * for the body and will accept either a string or an array. The 'headers'
     142         * argument should be an array, but a string is acceptable. If the 'body'
     143         * argument is an array, then it will automatically be escaped using
     144         * http_build_query().
     145         *
    140146         * The only URI that are supported in the HTTP Transport implementation are
    141147         * the HTTP and HTTPS protocols. HTTP and HTTPS are assumed so the server
    142148         * might not know how to handle the send headers. Other protocols are
     
    171177         *
    172178         * @param string $url URI resource.
    173179         * @param str|array $args Optional. Override the defaults.
    174          * @param string|array $headers Optional. Either the header string or array of Header name and value pairs. Expects sanitized.
    175          * @param string $body Optional. The body that should be sent. Will be automatically escaped and processed.
    176180         * @return boolean
    177181         */
    178         function request($url, $args = array(), $headers = null, $body = null) {
     182        function request( $url, $args = array() ) {
    179183                global $wp_version;
    180184
    181185                $defaults = array(
    182186                        'method' => 'GET', 'timeout' => apply_filters('http_request_timeout', 3),
    183187                        'redirection' => 5, 'httpversion' => '1.0',
    184188                        'user-agent' => apply_filters('http_headers_useragent', 'WordPress/' . $wp_version ),
    185                         'blocking' => true
     189                        'blocking' => true,
     190                        'headers' => array(), 'body' => null
    186191                );
    187192
    188193                $r = wp_parse_args( $args, $defaults );
    189194
    190                 if ( is_null($headers) )
    191                         $headers = array();
     195                if ( is_null( $r['headers'] ) )
     196                        $r['headers'] = array();
    192197
    193198                if ( ! is_array($headers) ) {
    194199                        $processedHeaders = WP_Http::processHeaders($headers);
     
    196201                }
    197202
    198203                if ( isset($headers['User-Agent']) ) {
    199                         $headers['user-agent'] = $headers['User-Agent'];
     204                        $r['user-agent'] = $headers['User-Agent'];
    200205                        unset($headers['User-Agent']);
    201206                }
    202207
    203                 if ( ! isset($headers['user-agent']) )
    204                         $headers['user-agent'] = $r['user-agent'];
     208                if ( isset($headers['user-agent']) )
     209                        $r['user-agent'] = $headers['user-agent'];
    205210
    206                 if ( is_null($body) ) {
     211                if ( is_null($r['body']) ) {
    207212                        $transports = WP_Http::_getTransport();
    208213                } else {
    209                         if ( is_array($body) || is_object($body) )
    210                                 $body = http_build_query($body);
     214                        if ( is_array( $r['body'] ) || is_object( $r['body'] ) )
     215                                $r['body'] = http_build_query($r['body']);
    211216
    212217                        $transports = WP_Http::_postTransport();
    213218                }
    214219
    215220                $response = array( 'headers' => array(), 'body' => '', 'response' => array('code', 'message') );
    216221                foreach( (array) $transports as $transport ) {
    217                         $response = $transport->request($url, $r, $headers, $body);
     222                        $response = $transport->request($url, $r);
    218223
    219224                        if( !is_wp_error($response) )
    220225                                return $response;
     
    233238         *
    234239         * @param string $url URI resource.
    235240         * @param str|array $args Optional. Override the defaults.
    236          * @param string|array $headers Optional. Either the header string or array of Header name and value pairs.
    237          * @param string $body Optional. The body that should be sent. Expected to be already processed.
    238241         * @return boolean
    239242         */
    240         function post($url, $args = array(), $headers = null, $body = null) {
     243        function post($url, $args = array()) {
    241244                $defaults = array('method' => 'POST');
    242245                $r = wp_parse_args( $args, $defaults );
    243                 return $this->request($url, $r, $headers, $body);
     246                return $this->request($url, $r);
    244247        }
    245248
    246249        /**
     
    253256         *
    254257         * @param string $url URI resource.
    255258         * @param str|array $args Optional. Override the defaults.
    256          * @param string|array $headers Optional. Either the header string or array of Header name and value pairs.
    257          * @param string $body Optional. The body that should be sent. Expected to be already processed.
    258259         * @return boolean
    259260         */
    260         function get($url, $args = array(), $headers = null, $body = null) {
     261        function get($url, $args = array()) {
    261262                $defaults = array('method' => 'GET');
    262263                $r = wp_parse_args( $args, $defaults );
    263                 return $this->request($url, $r, $headers, $body);
     264                return $this->request($url, $r);
    264265        }
    265266
    266267        /**
     
    273274         *
    274275         * @param string $url URI resource.
    275276         * @param str|array $args Optional. Override the defaults.
    276          * @param string|array $headers Optional. Either the header string or array of Header name and value pairs.
    277          * @param string $body Optional. The body that should be sent. Expected to be already processed.
    278277         * @return boolean
    279278         */
    280         function head($url, $args = array(), $headers = null, $body = null) {
     279        function head($url, $args = array()) {
    281280                $defaults = array('method' => 'HEAD');
    282281                $r = wp_parse_args( $args, $defaults );
    283                 return $this->request($url, $r, $headers, $body);
     282                return $this->request($url, $r);
    284283        }
    285284
    286285        /**
     
    299298        }
    300299
    301300        /**
    302          * Whether response code is in the 400 range.
    303          *
    304          * @access public
    305          * @static
    306          * @since 2.7
    307          *
    308          * @param array $response Array with code and message keys
    309          * @return bool True if 40x Response, false if something else.
    310          */
    311         function is400Response($response) {
    312                 if ( (int) substr($response, 0, 1) == 4 )
    313                         return true;
    314                 return false;
    315         }
    316 
    317         /**
    318          * Whether the headers returned a redirect location.
    319          *
    320          * Actually just checks whether the location header exists.
    321          *
    322          * @access public
    323          * @static
    324          * @since 2.7
    325          *
    326          * @param array $headers Array with headers
    327          * @return bool True if Location header is found.
    328          */
    329         function isRedirect($headers) {
    330                 if ( isset($headers['location']) )
    331                         return true;
    332                 return false;
    333         }
    334 
    335         /**
    336301         * Transform header string into an array.
    337302         *
    338303         * If an array is given then it is assumed to be raw header data with
     
    357322                        if ( empty($tempheader) )
    358323                                continue;
    359324
    360 
    361325                        if ( false === strpos($tempheader, ':') ) {
    362326                                list( , $iResponseCode, $strResponseMsg) = explode(' ', $tempheader, 3);
    363327                                $response['code'] = $iResponseCode;
     
    373337
    374338                return array('response' => $response, 'headers' => $newheaders);
    375339        }
     340
     341        /**
     342         * Decodes chunk transfer-encoding, based off the HTTP 1.1 specification.
     343         *
     344         * Based off the HTTP http_encoding_dechunk function. Does not support
     345         * UTF-8. Does not support returning footer headers. Shouldn't be too
     346         * difficult to support it though.
     347         *
     348         * @todo Add support for footer chunked headers.
     349         *
     350         * @static
     351         * @param string $body Body content
     352         * @return bool|string|WP_Error False if not chunked encoded. WP_Error on failure. Chunked decoded body on success.
     353         */
     354        function chunkTransferDecode($body) {
     355                $body = str_replace(array("\r\n", "\r"), "\n", $body);
     356                // The body is not chunked encoding or is malformed.
     357                if ( ! preg_match( '/^[0-9a-f]+(\s|\n)+/mi', trim($body) ) )
     358                        return false;
     359
     360                $hex = '';
     361                $dec = 0;
     362                $parsedBody = '';
     363                $parsedHeaders = array();
     364
     365                $done = false;
     366
     367                do {
     368                        $hasChunk = (bool) preg_match( '/^([0-9a-f]+)(\s|\n)+/mi', $body, $match );
     369
     370                        if ( $hasChunk ) {
     371                                if ( empty($match[1]) ) {
     372                                        return new WP_Error('http_chunked_decode', __('Does not appear to be chunked encoded or body is malformed.') );
     373                                }
     374
     375                                $length = hexdec( $match[1] );
     376                                $chunkLength = strlen( $match[0] );
     377
     378                                if( $body{$length+$chunkLength} == "\n" )
     379                                        $length++;
     380
     381                                $strBody = substr($body, strlen( $match[0] ), $length);
     382                                $parsedBody .= $strBody;
     383                                $body = str_replace(array($match[0], $strBody), '', $body);
     384
     385                                if( "0" == $body ) {
     386                                        $done = true;
     387                                        return $parsedBody; // Ignore footer headers.
     388                                        break;
     389                                }
     390                        } else {
     391                                return new WP_Error('http_chunked_decode', __('Does not appear to be chunked encoded or body is malformed.') );
     392                        }
     393                } while ( false === $done );
     394        }
    376395}
    377396
    378397/**
     
    391410         *
    392411         * Does not support non-blocking mode.
    393412         *
    394          * @see WP_Http::retrieve For default options descriptions.
     413         * @see WP_Http::request For default options descriptions.
    395414         *
    396415         * @since 2.7
    397416         * @access public
    398417         * @param string $url URI resource.
    399418         * @param str|array $args Optional. Override the defaults.
    400          * @param string|array $headers Optional. Either the header string or array of Header name and value pairs. Expects sanitized.
    401          * @param string $body Optional. The body that should be sent. Expected to be already processed.
    402419         * @return array 'headers', 'body', and 'response' keys.
    403420         */
    404         function request($url, $args = array(), $headers = null, $body = null) {
     421        function request($url, $args = array()) {
    405422                $defaults = array(
    406423                        'method' => 'GET', 'timeout' => 3,
    407424                        'redirection' => 5, 'httpversion' => '1.0',
    408                         'blocking' => true
     425                        'blocking' => true,
     426                        'headers' => array(), 'body' => null
    409427                );
    410428
    411429                $r = wp_parse_args( $args, $defaults );
    412430
     431                if ( isset($r['headers']['User-Agent']) ) {
     432                        $r['user-agent'] = $r['headers']['User-Agent'];
     433                        unset($r['headers']['User-Agent']);
     434                } else if( isset($r['headers']['user-agent']) ) {
     435                        $r['user-agent'] = $r['headers']['user-agent'];
     436                        unset($r['headers']['user-agent']);
     437                }
     438
    413439                $iError = null; // Store error number
    414440                $strError = null; // Store error string
    415441
     
    445471                $strHeaders = '';
    446472                $strHeaders .= strtoupper($r['method']) . ' ' . $requestPath . ' HTTP/' . $r['httpversion'] . "\r\n";
    447473                $strHeaders .= 'Host: ' . $arrURL['host'] . "\r\n";
    448                 if ( ! is_null($body) ) {
     474
     475                if( isset($r['user-agent']) )
     476                        $strHeaders .= 'User-agent: ' . $r['user-agent'] . "\r\n";
     477
     478                if ( ! is_null($r['body']) ) {
    449479                        $strHeaders .= 'Content-Type: application/x-www-form-urlencoded; charset=' . get_option('blog_charset') . "\r\n";
    450480                        $strHeaders .= 'Content-Length: ' . strlen($body) . "\r\n";
    451481                }
    452482
    453                 if ( is_array($headers) ) {
    454                         foreach ( (array) $headers as $header => $headerValue )
     483                if ( is_array($r['headers']) ) {
     484                        foreach ( (array) $r['headers'] as $header => $headerValue )
    455485                                $strHeaders .= $header . ': ' . $headerValue . "\r\n";
    456486                } else {
    457                         $strHeaders .= $headers;
     487                        $strHeaders .= $r['headers'];
    458488                }
    459489
    460490                $strHeaders .= "\r\n";
    461491
    462                 if ( ! is_null($body) )
    463                         $strHeaders .= $body;
     492                if ( ! is_null($r['body']) )
     493                        $strHeaders .= $r['body'];
    464494
    465495                fwrite($handle, $strHeaders);
    466496
     
    481511                $process = WP_Http::processResponse($strResponse);
    482512                $arrHeaders = WP_Http::processHeaders($process['headers']);
    483513
    484                 if ( WP_Http::is400Response($arrHeaders['response']) )
     514                if ( WP_Http_Fsockopen::is400Response($arrHeaders['response']) )
    485515                        return new WP_Error('http_request_failed', $arrHeaders['response']['code'] . ': ' . $arrHeaders['response']['message']);
    486516
     517                // If location is found, then assume redirect and redirect to location.
    487518                if ( isset($arrHeaders['headers']['location']) ) {
    488                         if ( $r['redirection']-- > 0 )
    489                                 return $this->request($arrHeaders['headers']['location'], $r, $headers, $body);
     519                        if ( $r['redirection']-- > 0 ) {
     520                                return $this->request($arrHeaders['headers']['location'], $r);
     521                        }
    490522                        else
    491523                                return new WP_Error('http_request_failed', __('Too many redirects.'));
    492524                }
     
    507539
    508540                return false;
    509541        }
     542
     543        /**
     544         * Whether response code is in the 400 range.
     545         *
     546         * @access public
     547         * @static
     548         * @since 2.7
     549         *
     550         * @param array $response Array with code and message keys
     551         * @return bool True if 40x Response, false if something else.
     552         */
     553        function is400Response($response) {
     554                if ( is_string($response) && (int) substr($response, 0, 1) == 4 )
     555                        return true;
     556                return false;
     557        }
    510558}
    511559
    512560/**
     
    536584         *
    537585         * @param string $url URI resource.
    538586         * @param str|array $args Optional. Override the defaults.
    539          * @param string|array $headers Optional. Either the header string or array of Header name and value pairs. Expects sanitized.
    540          * @param string $body Optional. The body that should be sent. Expected to be already processed.
    541587         * @return array 'headers', 'body', and 'response' keys.
    542588         */
    543         function request($url, $args = array(), $headers = null, $body = null) {
     589        function request($url, $args = array()) {
    544590                global $http_response_header;
    545591
    546592                $defaults = array(
    547593                        'method' => 'GET', 'timeout' => 3,
    548594                        'redirection' => 5, 'httpversion' => '1.0',
    549                         'blocking' => true
     595                        'blocking' => true,
     596                        'headers' => array(), 'body' => null
    550597                );
    551598
    552599                $r = wp_parse_args( $args, $defaults );
     
    591638
    592639                $processedHeaders = WP_Http::processHeaders($theHeaders);
    593640
     641                if ( ! empty( $strResponse ) && isset( $processedHeaders['headers']['transfer-encoding'] ) && 'chunked' == $processedHeaders['headers']['transfer-encoding'] )
     642                        $theBody = WP_Http::chunkTransferDecode($strResponse);
     643
    594644                return array('headers' => $processedHeaders['headers'], 'body' => $strResponse, 'response' => $processedHeaders['response']);
    595645        }
    596646
     
    629679         *
    630680         * @param string $url
    631681         * @param str|array $args Optional. Override the defaults.
    632          * @param string|array $headers Optional. Either the header string or array of Header name and value pairs. Expects sanitized.
    633          * @param string $body Optional. The body that should be sent. Expected to be already processed.
    634682         * @return array 'headers', 'body', and 'response' keys.
    635683         */
    636         function request($url, $args = array(), $headers = null, $body = null) {
     684        function request($url, $args = array()) {
    637685                $defaults = array(
    638686                        'method' => 'GET', 'timeout' => 3,
    639687                        'redirection' => 5, 'httpversion' => '1.0',
    640                         'blocking' => true
     688                        'blocking' => true,
     689                        'headers' => array(), 'body' => null
    641690                );
    642691
    643692                $r = wp_parse_args( $args, $defaults );
    644693
    645                 if ( isset($headers['User-Agent']) ) {
    646                         $r['user-agent'] = $headers['User-Agent'];
    647                         unset($headers['User-Agent']);
    648                 } else if( isset($headers['user-agent']) ) {
    649                         $r['user-agent'] = $headers['user-agent'];
    650                         unset($headers['user-agent']);
    651                 } else {
    652                         $r['user-agent'] = apply_filters('http_headers_useragent', 'WordPress/' . $wp_version );
     694                if ( isset($r['headers']['User-Agent']) ) {
     695                        $r['user-agent'] = $r['headers']['User-Agent'];
     696                        unset($r['headers']['User-Agent']);
     697                } else if( isset($r['headers']['user-agent']) ) {
     698                        $r['user-agent'] = $r['headers']['user-agent'];
     699                        unset($r['headers']['user-agent']);
    653700                }
    654701
    655702                $arrURL = parse_url($url);
     
    666713                                'user-agent' => $r['user-agent'],
    667714                                'max_redirects' => $r['redirection'],
    668715                                'protocol_version' => (float) $r['httpversion'],
    669                                 'header' => $headers,
     716                                'header' => $r['headers'],
    670717                                'timeout' => $r['timeout']
    671718                        )
    672719                );
    673720
    674                 if ( ! is_null($body) )
    675                         $arrContext['http']['content'] = $body;
     721                if ( ! is_null($r['body']) )
     722                        $arrContext['http']['content'] = $r['body'];
    676723
    677724                $context = stream_context_create($arrContext);
    678725
     
    695742                $meta = stream_get_meta_data($handle);
    696743                $processedHeaders = WP_Http::processHeaders($meta['wrapper_data']);
    697744
     745                if ( ! empty( $strResponse ) && isset( $processedHeaders['headers']['transfer-encoding'] ) && 'chunked' == $processedHeaders['headers']['transfer-encoding'] )
     746                        $theBody = WP_Http::chunkTransferDecode($strResponse);
     747
    698748                fclose($handle);
    699749
    700750                return array('headers' => $processedHeaders['headers'], 'body' => $strResponse, 'response' => $processedHeaders['response']);
     
    743793         *
    744794         * @param string $url
    745795         * @param str|array $args Optional. Override the defaults.
    746          * @param array $headers Optional. Either the header string or array of Header name and value pairs. Expects sanitized.
    747          * @param string $body Optional. The body that should be sent. Expected to be already processed.
    748796         * @return array 'headers', 'body', and 'response' keys.
    749797         */
    750         function request($url, $args = array(), $headers = null, $body = null) {
    751                 global $wp_version;
    752 
     798        function request($url, $args = array()) {
    753799                $defaults = array(
    754800                        'method' => 'GET', 'timeout' => 3,
    755801                        'redirection' => 5, 'httpversion' => '1.0',
    756                         'blocking' => true
     802                        'blocking' => true,
     803                        'headers' => array(), 'body' => null
    757804                );
    758805
    759806                $r = wp_parse_args( $args, $defaults );
    760807
    761                 if ( isset($headers['User-Agent']) ) {
    762                         $r['user-agent'] = $headers['User-Agent'];
    763                         unset($headers['User-Agent']);
    764                 } else if( isset($headers['user-agent']) ) {
    765                         $r['user-agent'] = $headers['user-agent'];
    766                         unset($headers['user-agent']);
    767                 } else {
    768                         $r['user-agent'] = apply_filters('http_headers_useragent', 'WordPress/' . $wp_version );
     808                if ( isset($r['headers']['User-Agent']) ) {
     809                        $r['user-agent'] = $r['headers']['User-Agent'];
     810                        unset($r['headers']['User-Agent']);
     811                } else if( isset($r['headers']['user-agent']) ) {
     812                        $r['user-agent'] = $r['headers']['user-agent'];
     813                        unset($r['headers']['user-agent']);
    769814                }
    770815
    771816                switch ( $r['method'] ) {
     
    792837                        'connecttimeout' => $r['timeout'],
    793838                        'redirect' => $r['redirection'],
    794839                        'useragent' => $r['user-agent'],
    795                         'headers' => $headers,
     840                        'headers' => $r['headers'],
    796841                );
    797842
    798                 $strResponse = http_request($r['method'], $url, $body, $options, $info);
     843                $strResponse = http_request($r['method'], $url, $r['body'], $options, $info);
    799844
    800845                if ( false === $strResponse )
    801846                        return new WP_Error('http_request_failed', $info['response_code'] . ': ' . $info['error']);
     
    850895         *
    851896         * @param string $url
    852897         * @param str|array $args Optional. Override the defaults.
    853          * @param string|array $headers Optional. Either the header string or array of Header name and value pairs. Expects sanitized.
    854          * @param string $body Optional. The body that should be sent. Expected to be already processed.
    855898         * @return array 'headers', 'body', and 'response' keys.
    856899         */
    857         function request($url, $args = array(), $headers = null, $body = null) {
    858                 global $wp_version;
    859 
     900        function request($url, $args = array()) {
    860901                $defaults = array(
    861902                        'method' => 'GET', 'timeout' => 3,
    862903                        'redirection' => 5, 'httpversion' => '1.0',
    863                         'blocking' => true
     904                        'blocking' => true,
     905                        'headers' => array(), 'body' => null
    864906                );
    865907
    866908                $r = wp_parse_args( $args, $defaults );
    867909
    868                 if ( isset($headers['User-Agent']) ) {
    869                         $r['user-agent'] = $headers['User-Agent'];
    870                         unset($headers['User-Agent']);
    871                 } else if( isset($headers['user-agent']) ) {
    872                         $r['user-agent'] = $headers['user-agent'];
    873                         unset($headers['user-agent']);
    874                 } else {
    875                         $r['user-agent'] = apply_filters('http_headers_useragent', 'WordPress/' . $wp_version );
     910                if ( isset($r['headers']['User-Agent']) ) {
     911                        $r['user-agent'] = $r['headers']['User-Agent'];
     912                        unset($r['headers']['User-Agent']);
     913                } else if( isset($r['headers']['user-agent']) ) {
     914                        $r['user-agent'] = $r['headers']['user-agent'];
     915                        unset($r['headers']['user-agent']);
    876916                }
    877917
    878918                $handle = curl_init();
     
    896936                if ( !ini_get('safe_mode') && !ini_get('open_basedir') )
    897937                        curl_setopt( $handle, CURLOPT_FOLLOWLOCATION, true );
    898938
    899                 if( ! is_null($headers) )
    900                         curl_setopt( $handle, CURLOPT_HTTPHEADER, $headers );
     939                if( ! is_null($r['headers']) )
     940                        curl_setopt( $handle, CURLOPT_HTTPHEADER, $r['headers'] );
    901941
    902942                if ( $r['httpversion'] == '1.0' )
    903943                        curl_setopt( $handle, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0 );
     
    915955                list($theHeaders, $theBody) = explode("\r\n\r\n", $theResponse, 2);
    916956                $theHeaders = WP_Http::processHeaders($theHeaders);
    917957
     958                if ( ! empty( $theBody ) && isset( $theHeaders['headers']['transfer-encoding'] ) && 'chunked' == $theHeaders['headers']['transfer-encoding'] )
     959                        $theBody = WP_Http::chunkTransferDecode($theBody);
     960
    918961                $response = array();
    919962                $response['code'] = curl_getinfo( $handle, CURLINFO_HTTP_CODE );
    920963                $response['message'] = get_status_header_desc($response['code']);
     
    9861029 *
    9871030 * @param string $url Site URL to retrieve.
    9881031 * @param array $args Optional. Override the defaults.
    989  * @param string|array $headers Optional. Either the header string or array of Header name and value pairs.
    990  * @param string $body Optional. The body that should be sent. Expected to be already processed.
    9911032 * @return string The body of the response
    9921033 */
    993 function wp_remote_request($url, $args = array(), $headers = null, $body = null) {
     1034function wp_remote_request($url, $args = array()) {
    9941035        $objFetchSite = _wp_http_get_object();
    995 
    996         return $objFetchSite->request($url, $args, $headers, $body);
     1036        return $objFetchSite->request($url, $args);
    9971037}
    9981038
    9991039/**
     
    10051045 *
    10061046 * @param string $url Site URL to retrieve.
    10071047 * @param array $args Optional. Override the defaults.
    1008  * @param string|array $headers Optional. Either the header string or array of Header name and value pairs.
    1009  * @param string $body Optional. The body that should be sent. Expected to be already processed.
    10101048 * @return string The body of the response
    10111049 */
    1012 function wp_remote_get($url, $args = array(), $headers = null, $body = null) {
     1050function wp_remote_get($url, $args = array()) {
    10131051        $objFetchSite = _wp_http_get_object();
    10141052
    1015         return $objFetchSite->get($url, $args, $headers, $body);
     1053        return $objFetchSite->get($url, $args);
    10161054}
    10171055
    10181056/**
     
    10241062 *
    10251063 * @param string $url Site URL to retrieve.
    10261064 * @param array $args Optional. Override the defaults.
    1027  * @param string|array $headers Optional. Either the header string or array of Header name and value pairs.
    1028  * @param string $body Optional. The body that should be sent. Expected to be already processed.
    10291065 * @return string The body of the response
    10301066 */
    1031 function wp_remote_post($url, $args = array(), $headers = null, $body = null) {
     1067function wp_remote_post($url, $args = array()) {
    10321068        $objFetchSite = _wp_http_get_object();
    1033 
    1034         return $objFetchSite->post($url, $args, $headers, $body);
     1069        return $objFetchSite->post($url, $args);
    10351070}
    10361071
    10371072/**
     
    10431078 *
    10441079 * @param string $url Site URL to retrieve.
    10451080 * @param array $args Optional. Override the defaults.
    1046  * @param string|array $headers Optional. Either the header string or array of Header name and value pairs.
    1047  * @param string $body Optional. The body that should be sent. Expected to be already processed.
    10481081 * @return string The body of the response
    10491082 */
    1050 function wp_remote_head($url, $args = array(), $headers = null, $body = null) {
     1083function wp_remote_head($url, $args = array()) {
    10511084        $objFetchSite = _wp_http_get_object();
    1052 
    1053         return $objFetchSite->head($url, $args, $headers, $body);
     1085        return $objFetchSite->head($url, $args);
    10541086}
    10551087
    10561088/**
     
    11361168        return $response['body'];
    11371169}
    11381170
    1139 ?>
     1171?>
     1172 No newline at end of file