This function recieves the request url and it is used internally to get
        the information via http.
        Returns the response content.
        Raises Timeout, TooManyRedirects, RequestException.
        Raises KeyError if headers are not present.
        Raises HTTPError if responde code is not 200.

def http_get(self, request_url):
        """
        This function recieves the request url and it is used internally to get
        the information via http.
        Returns the response content.
        Raises Timeout, TooManyRedirects, RequestException.
        Raises KeyError if headers are not present.
        Raises HTTPError if responde code is not 200.
        """
        try:
            headers = {'Accept-Encoding': 'gzip, deflate'}
            response = requests.get(request_url, headers=headers)
        except requests.exceptions.Timeout as ext:
            log.error('Error: Timeout', ext)
        except requests.exceptions.TooManyRedirects as extmr:
            log.error('Error: TooManyRedirects', extmr)
        except requests.exceptions.RequestException as ex:
            log.error('Error: RequestException', ex)
            sys.exit(1)

        try:
            self.cache_control = response.headers['Cache-Control']
        except KeyError as kerr:
            log.warning('Warning: Could not get headers. %s' % kerr)
            self.cache_control = None
        try:
            self.expires = response.headers['Expires']
        except KeyError as kerr:
            log.warning('Warning: Could not get headers. %s' % kerr)
            self.extend_url = None
        try:
            self.x_forecast_api_calls = response.headers['X-Forecast-API-Calls']
        except KeyError as kerr:
            log.warning('Warning: Could not get headers. %s' % kerr)
            self.x_forecast_api_calls = None
        try:
            self.x_responde_time = response.headers['X-Response-Time']
        except KeyError as kerr:
            log.warning('Warning: Could not get headers. %s' % kerr)
            self.x_responde_time = None

        if response.status_code is not 200:
            raise requests.exceptions.HTTPError('Bad response, status code: %x' % (response.status_code))

        self.raw_response = response.text
        return self.raw_response