code: private function request($url, $method, $authorization, array $postfields, $json = false)
      {
          $options = $this->curlOptions();
          $options[CURLOPT_URL] = $url;
          $options[CURLOPT_HTTPHEADER] = ['Accept: application/json', $authorization, 'Expect:'];
  
          switch ($method) {
              case 'GET':
                  break;
              case 'POST':
                  $options[CURLOPT_POST] = true;
                  if ($json) {
                      $options[CURLOPT_HTTPHEADER][] = 'Content-type: application/json';
                      $options[CURLOPT_POSTFIELDS] = json_encode($postfields);
                  } else {
                      $options[CURLOPT_POSTFIELDS] = Util::buildHttpQuery($postfields);
                  }
                  break;
              case 'DELETE':
                  $options[CURLOPT_CUSTOMREQUEST] = 'DELETE';
                  break;
              case 'PUT':
                  $options[CURLOPT_CUSTOMREQUEST] = 'PUT';
                  break;
          }
  
          if (in_array($method, ['GET', 'PUT', 'DELETE']) && !empty($postfields)) {
              $options[CURLOPT_URL] .= '?' . Util::buildHttpQuery($postfields);
          }
  
  
          $curlHandle = curl_init();
          curl_setopt_array($curlHandle, $options);
          $response = curl_exec($curlHandle);
  
          // Throw exceptions on cURL errors.
          if (curl_errno($curlHandle) > 0) {
              throw new TwitterOAuthException(curl_error($curlHandle), curl_errno($curlHandle));
          }
  
          $this->response->setHttpCode(curl_getinfo($curlHandle, CURLINFO_HTTP_CODE));
          $parts = explode("\r\n\r\n", $response);
          $responseBody = array_pop($parts);
          $responseHeader = array_pop($parts);
          $this->response->setHeaders($this->parseHeaders($responseHeader));
  
          curl_close($curlHandle);
  
          return $responseBody;
      }
docs: Make an HTTP request
  
  @param string $url
  @param string $method
  @param string $authorization
  @param array $postfields
  @param bool $json
  
  @return string
  @throws TwitterOAuthException