Resources\Rest::sendRequest PHP Method

sendRequest() public method

Send HTTP Request to server.
public sendRequest ( string $uri, string $method = 'GET', array | string $data = null ) : booeal
$uri string The server's URL
$method string HTTP Request method type
$data array | string
return booeal if false and string if true
    public function sendRequest($uri, $method = 'GET', $data = null)
    {
        foreach ($this->requestHeaders as $key => $value) {
            $this->setRequestHeaders[] = $key . ': ' . $value;
        }
        $method = strtoupper($method);
        $urlSeparator = parse_url($uri, PHP_URL_QUERY) ? '&' : '?';
        $uri = $method == 'GET' && !empty($data) ? $uri . $urlSeparator . (is_array($data) ? http_build_query($data) : $data) : $uri;
        $c = curl_init();
        curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($c, CURLOPT_URL, $uri);
        curl_setopt($c, CURLOPT_TIMEOUT, $this->timeout);
        curl_setopt($c, CURLOPT_SSL_VERIFYPEER, $this->curlSSLVerifypeer);
        if ($this->responseOutputHeader) {
            curl_setopt($c, CURLOPT_HEADER, true);
        }
        if ($method != 'GET') {
            if (is_array($data)) {
                $data = http_build_query($data);
            }
            if ($method == 'POST') {
                curl_setopt($c, CURLOPT_POST, true);
            }
            if ($method == 'PUT' || $method == 'DELETE') {
                $this->setRequestHeaders[] = 'Content-Length: ' . strlen($data);
                curl_setopt($c, CURLOPT_CUSTOMREQUEST, $method);
            }
            curl_setopt($c, CURLOPT_POSTFIELDS, $data);
        }
        curl_setopt($c, CURLOPT_HTTPHEADER, $this->setRequestHeaders);
        curl_setopt($c, CURLINFO_HEADER_OUT, true);
        $contents = curl_exec($c);
        $this->responseStatus = curl_getinfo($c, CURLINFO_HTTP_CODE);
        $this->headerSent = curl_getinfo($c, CURLINFO_HEADER_OUT);
        curl_close($c);
        if ($contents) {
            return $contents;
        }
        return false;
    }