X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/b3ddbea8a296025a672b3c3ddca158dc51ed8080..HEAD:/wp-includes/class-wp-http-ixr-client.php diff --git a/wp-includes/class-wp-http-ixr-client.php b/wp-includes/class-wp-http-ixr-client.php index 9e202ed6..e4ed5502 100644 --- a/wp-includes/class-wp-http-ixr-client.php +++ b/wp-includes/class-wp-http-ixr-client.php @@ -7,8 +7,19 @@ * */ class WP_HTTP_IXR_Client extends IXR_Client { + public $scheme; + /** + * @var IXR_Error + */ + public $error; - function __construct($server, $path = false, $port = false, $timeout = 15) { + /** + * @param string $server + * @param string|bool $path + * @param int|bool $port + * @param int $timeout + */ + public function __construct($server, $path = false, $port = false, $timeout = 15) { if ( ! $path ) { // Assume we have been given a URL instead $bits = parse_url($server); @@ -18,8 +29,13 @@ class WP_HTTP_IXR_Client extends IXR_Client { $this->path = !empty($bits['path']) ? $bits['path'] : '/'; // Make absolutely sure we have a path - if ( ! $this->path ) + if ( ! $this->path ) { $this->path = '/'; + } + + if ( ! empty( $bits['query'] ) ) { + $this->path .= '?' . $bits['query']; + } } else { $this->scheme = 'http'; $this->server = $server; @@ -30,7 +46,10 @@ class WP_HTTP_IXR_Client extends IXR_Client { $this->timeout = $timeout; } - function query() { + /** + * @return bool + */ + public function query() { $args = func_get_args(); $method = array_shift($args); $request = new IXR_Request($method, $args); @@ -45,15 +64,27 @@ class WP_HTTP_IXR_Client extends IXR_Client { ); // Merge Custom headers ala #8145 - foreach ( $this->headers as $header => $value ) + foreach ( $this->headers as $header => $value ) { $args['headers'][$header] = $value; + } + + /** + * Filters the headers collection to be sent to the XML-RPC server. + * + * @since 4.4.0 + * + * @param array $headers Array of headers to be sent. + */ + $args['headers'] = apply_filters( 'wp_http_ixr_client_headers', $args['headers'] ); - if ( $this->timeout !== false ) + if ( $this->timeout !== false ) { $args['timeout'] = $this->timeout; + } // Now send the request - if ( $this->debug ) + if ( $this->debug ) { echo '
' . htmlspecialchars($xml) . "\n
\n\n"; + } $response = wp_remote_post($url, $args); @@ -69,8 +100,9 @@ class WP_HTTP_IXR_Client extends IXR_Client { return false; } - if ( $this->debug ) + if ( $this->debug ) { echo '
' . htmlspecialchars( wp_remote_retrieve_body( $response ) ) . "\n
\n\n"; + } // Now parse what we've got back $this->message = new IXR_Message( wp_remote_retrieve_body( $response ) ); @@ -90,4 +122,3 @@ class WP_HTTP_IXR_Client extends IXR_Client { return true; } } -?>