Dispatches a HTTP request to a supporting transport.
Description
Tests each transport in order to find a transport which matches the request arguments.
Also caches the transport instance to be used later.
The order for requests is cURL, and then PHP Streams.
See also
Parameters
$url
stringrequired- URL to request.
$args
arrayrequired- Request arguments.
Source
private function _dispatch_request( $url, $args ) {
static $transports = array();
$class = $this->_get_first_available_transport( $args, $url );
if ( ! $class ) {
return new WP_Error( 'http_failure', __( 'There are no HTTP transports available which can complete the requested request.' ) );
}
// Transport claims to support request, instantiate it and give it a whirl.
if ( empty( $transports[ $class ] ) ) {
$transports[ $class ] = new $class();
}
$response = $transports[ $class ]->request( $url, $args );
/** This action is documented in wp-includes/class-wp-http.php */
do_action( 'http_api_debug', $response, 'response', $class, $args, $url );
if ( is_wp_error( $response ) ) {
return $response;
}
/** This filter is documented in wp-includes/class-wp-http.php */
return apply_filters( 'http_response', $response, $args, $url );
}
Hooks
- do_action( ‘http_api_debug’,
array|WP_Error $response ,string $context ,string $class ,array $parsed_args ,string $url ) Fires after an HTTP API response is received and before the response is returned.
- apply_filters( ‘http_response’,
array $response ,array $parsed_args ,string $url ) Filters a successful HTTP API response immediately before the response is returned.
User Contributed Notes
You must log in before being able to contribute a note or feedback.