<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _make_request( self, method, url, data=None, content_type=None, headers=None, target_object=None, ):
 """A low level method to send a request to the API. Typically, you shouldn't need to use this method. :type method: str :param method: The HTTP method to use in the request. :type url: str :param url: The URL to send the request to. :type data: str :param data: The data to send as the body of the request. :type content_type: str :param content_type: The proper MIME type of the data provided. :type headers: dict :param headers: (Optional) A dictionary of HTTP headers to send with the request. If passed, will be modified directly here with added headers. :type target_object: object :param target_object: (Optional) Argument to be used by library callers. This can allow custom behavior, for example, to defer an HTTP request and complete initialization of the object at a later time. :rtype: :class:`requests.Response` :returns: The HTTP response. """

        headers = headers or {}
        headers.update(self._EXTRA_HEADERS)
        headers["Accept-Encoding"] = "gzip"

        if content_type:
            headers["Content-Type"] = content_type

        headers["User-Agent"] = self.USER_AGENT

        return self._do_request(method, url, headers, data, target_object)