<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def request(self, action, data={}, headers={}, method='GET'):
 """ Run the HTTP request against the Clickatell API :param str action: The API action :param dict data: The request parameters :param dict headers: The request headers (if any) :param str method: The HTTP method :return: The request response """

        url = ('https' if self.secure else 'http') + '://' + self.endpoint
        url = url + '/' + action

        # Set the User-Agent
        userAgent = "".join(["ClickatellPython/0.1.2", " ", "Python/", platform.python_version()])
        headers = self.merge({ "User-Agent": userAgent }, headers)

        try:
            func = getattr(requests, method.lower())
        except AttributeError:
            raise Exception('HTTP method ' + method + ' unsupported.')

        resp = func(url, params=data, data=json.dumps(data), headers=headers)

        # Set the coding before unwrapping the text
        resp.encoding = 'utf-8'
        content = resp.text
        return content