diff --git a/lib/Client.php b/lib/Client.php index 81c4eb8..fc7a159 100644 --- a/lib/Client.php +++ b/lib/Client.php @@ -258,25 +258,14 @@ public function makeRequest($method, $url, $body = null, $headers = null, $retry $curlOpts = $this->createCurlOptions($method, $body, $headers); curl_setopt_array($curl, $curlOpts); - $response = curl_exec($curl); - $headerSize = curl_getinfo($curl, CURLINFO_HEADER_SIZE); - $statusCode = curl_getinfo($curl, CURLINFO_HTTP_CODE); + curl_setopt($curl, CURLOPT_HTTPHEADER, $this->headers); - $responseBody = substr($response, $headerSize); - $responseHeaders = substr($response, 0, $headerSize); - - $responseHeaders = explode("\n", $responseHeaders); - $responseHeaders = array_map('trim', $responseHeaders); + $response = $this->prepareResponse($curl); curl_close($curl); - - $response = new Response($statusCode, $responseBody, $responseHeaders); - if ($statusCode === 429 && $retryOnLimit) { - $headers = $response->headers(true); - $sleepDurations = $headers['X-Ratelimit-Reset'] - time(); - sleep($sleepDurations > 0 ? $sleepDurations : 0); - return $this->makeRequest($method, $url, $body, $headers, false); + if ($response->statusCode() == 429 && $retryOnLimit) { + return $this->retryRequest($response->headers(true), $method, $url, $body, $headers); } return $response;