docs: def get(self, url, fromfile=None, params={}, headers={}):
          '''Get SDMX message from REST service or local file
  
          Args:
  
              url(str): URL of the REST service without the query part
                  If None, fromfile must be set. Default is None
              params(dict): will be appended as query part to the URL after a '?'
              fromfile(str): path to SDMX file containing an SDMX message.
                  It will be passed on to the
                  reader for parsing.
              headers(dict): http headers. Overwrite instance-wide headers.
                  Default is {}
  
          Returns:
              tuple: three objects:
  
                  0. file-like object containing the SDMX message
                  1. the complete URL, if any, including the query part
                     constructed from params
                  2. the status code
  
          Raises:
              HTTPError if SDMX service responded with
                  status code 401. Otherwise, the status code
                  is returned
   '''
          if fromfile:
              try:
                  # Load data from local file
                  # json files must be opened in text mode, all others in binary as
                  # they may be zip files or xml.
                  if fromfile.endswith('.json'):
                      mode_str = 'r'
                  else:
                      mode_str = 'rb'
                  source = open(fromfile, mode_str)
              except TypeError:
                  # so fromfile must be file-like
                  source = fromfile
              final_url = resp_headers = status_code = None
          else:
              source, final_url, resp_headers, status_code = self.request(
                  url, params=params, headers=headers)
          return source, final_url, resp_headers, status_code