throw_for_status(); return $this->makePhastResponse($response); } public function post(URL $url, $data, array $headers = []) { if (!is_callable([\Requests::class, 'post'])) { throw new NetworkError('\\Requests::post is not available'); } $options = ['connect_timeout' => 10, 'timeout' => 20]; $response = \Requests::post((string) $url, $headers, $data, $options); $response->throw_for_status(); return $this->makePhastResponse($response); } private function makePhastResponse(\Requests_Response $requestsResponse) { $phastResponse = new Response(); $phastResponse->setContent($requestsResponse->body); foreach ($requestsResponse->headers as $name => $value) { $phastResponse->setHeader($name, $value); } return $phastResponse; } public static function loadWordPressRequests() { if (class_exists(\Requests::class)) { return; } $dir = $_SERVER['SCRIPT_FILENAME']; do { $dir = dirname($dir); $classFile = "$dir/wp-includes/class-requests.php"; $caFile = "$dir/wp-includes/certificates/ca-bundle.crt"; if (file_exists($classFile) && file_exists($caFile)) { @include_once $classFile; if (class_exists(\Requests::class)) { \Requests::register_autoloader(); \Requests::set_certificate_path($caFile); return; } } } while ($dir != dirname($dir)); } }