public function request($method, $url = '', $body = null, array $headers = [])
    {
        $url = $this->getAbsoluteUrl($url);

        $response = $this->send(new HTTP\Request($method, $url, $headers, $body));

        return [
            'body' => $response->getBodyAsString(),
            'statusCode' => (int) $response->getStatus(),
            'headers' => array_change_key_case($response->getHeaders()),
        ];
    }