<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, url, params=None, data=None, retry_on_error=True, method=None):
 """Make a HTTP request and return the response. :param url: the url to grab content from. :param params: a dictionary containing the GET data to put in the url :param data: a dictionary containing the extra data to submit :param retry_on_error: if True retry the request, if it fails, for up to 3 attempts :param method: The HTTP method to use in the request. :returns: The HTTP response. """

        return self._request(url, params, data, raw_response=True,
                             retry_on_error=retry_on_error, method=method)