docs: def _get(self, url,
               param_dict={},
               securityHandler=None,
               additional_headers=[],
               handlers=[],
               proxy_url=None,
               proxy_port=None,
               compress=True,
               custom_handlers=[],
               out_folder=None,
               file_name=None):
          """
          Performs a GET operation
          Inputs:
  
          Output:
             returns dictionary, string or None
          """
          self._last_method = "GET"
          CHUNK = 4056
          param_dict, handler, cj = self._processHandler(securityHandler, param_dict)
          headers = [] + additional_headers
          if compress:
              headers.append(('Accept-encoding', 'gzip'))
          else:
              headers.append(('Accept-encoding', ''))
          headers.append(('User-Agent', self.useragent))
          if len(param_dict.keys()) == 0:
              param_dict = None
          if handlers is None:
              handlers = []
          if handler is not None:
              handlers.append(handler)
          handlers.append(RedirectHandler())
          if cj is not None:
              handlers.append(request.HTTPCookieProcessor(cj))
          if proxy_url is not None:
              if proxy_port is None:
                  proxy_port = 80
              proxies = {"http":"http://%s:%s" % (proxy_url, proxy_port),
                         "https":"https://%s:%s" % (proxy_url, proxy_port)}
              proxy_support = request.ProxyHandler(proxies)
              handlers.append(proxy_support)
          opener = request.build_opener(*handlers)
          opener.addheaders = headers
          if param_dict is None:
              resp = opener.open(url, data=param_dict)
          elif len(str(urlencode(param_dict))) + len(url) >= 1999:
              resp = opener.open(url, data=urlencode(param_dict))
          else:
              format_url = url + "?%s" % urlencode(param_dict)
              resp = opener.open(fullurl=format_url)
          self._last_code = resp.getcode()
          self._last_url = resp.geturl()
          #  Get some headers from the response
          maintype = self._mainType(resp)
          contentDisposition = resp.headers.get('content-disposition')
          contentEncoding = resp.headers.get('content-encoding')
          contentType = resp.headers.get('content-Type').split(';')[0].lower()
          contentLength = resp.headers.get('content-length')
          if maintype.lower() in ('image',
                                  'application/x-zip-compressed') or \
             contentType == 'application/x-zip-compressed' or \
             (contentDisposition is not None and \
             contentDisposition.lower().find('attachment;') > -1):
  
              fname = self._get_file_name(
                  contentDisposition=contentDisposition,
                  url=url)
              if out_folder is None:
                  out_folder = tempfile.gettempdir()
              if contentLength is not None:
                  max_length = int(contentLength)
                  if max_length < CHUNK:
                      CHUNK = max_length
              file_name = os.path.join(out_folder, fname)
              with open(file_name, 'wb') as writer:
                  for data in self._chunk(response=resp,
                                          size=CHUNK):
                      writer.write(data)
                      writer.flush()
                  writer.flush()
                  del writer
              return file_name
          else:
              read = ""
              for data in self._chunk(response=resp,
                                      size=CHUNK):
                  if self.PY3 == True:
                      read += data.decode('utf-8')
                  else:
                      read += data
  
                  del data
              try:
                  results = json.loads(read)
                  if 'error' in results:
                      if 'message' in results['error']:
                          if results['error']['message'] == 'Request not made over ssl':
                              if url.startswith('http://'):
                                  url = url.replace('http://', 'https://')
                                  return self._get(url,
                                                 param_dict,
                                                 securityHandler,
                                                 additional_headers,
                                                 handlers,
                                                 proxy_url,
                                                 proxy_port,
                                                 compress,
                                                 custom_handlers,
                                                 out_folder,
                                                 file_name)
                  return results
              except:
                  return read