Index: src/wp-includes/class-http.php
===================================================================
--- src/wp-includes/class-http.php	(revision 38584)
+++ src/wp-includes/class-http.php	(working copy)
@@ -140,6 +140,7 @@
 	 *     @type string       $filename            Filename of the file to write to when streaming. $stream must be
 	 *                                             set to true. Default null.
 	 *     @type int          $limit_response_size Size in bytes to limit the response to. Default null.
+	 *     @type Requests_Hooks $request_hooks     Hooks for Requests.
 	 *
 	 * }
 	 * @return array|WP_Error Array containing 'headers', 'body', 'response', 'cookies', 'filename'.
@@ -202,6 +203,7 @@
 			'stream' => false,
 			'filename' => null,
 			'limit_response_size' => null,
+			'request_hooks' => null,
 		);
 
 		// Pre-parse for the HEAD checks.
@@ -296,11 +298,15 @@
 		$headers = $r['headers'];
 		$data = $r['body'];
 		$type = $r['method'];
+		$hooks = $r['request_hooks'];
+		if ( ! ( $hooks instanceof Requests_Hooks ) ) {
+			$hooks = new Requests_Hooks();
+		}
 		$options = array(
 			'timeout' => $r['timeout'],
 			'useragent' => $r['user-agent'],
 			'blocking' => $r['blocking'],
-			'hooks' => new Requests_Hooks(),
+			'hooks' => $hooks,
 		);
 
 		// Ensure redirects follow browser behaviour.
