code: def _make_request(token, method_name, method='get', params=None, files=None, base_url=API_URL):
      
      request_url = base_url.format(token, method_name)
      logger.debug("Request: method={0} url={1} params={2} files={3}".format(method, request_url, params, files))
      read_timeout = READ_TIMEOUT
      connect_timeout = CONNECT_TIMEOUT
      if files and format_header_param:
          fields.format_header_param = _no_encode(format_header_param)
      if params:
          if 'timeout' in params: read_timeout = params['timeout'] + 10
          if 'connect-timeout' in params: connect_timeout = params['connect-timeout'] + 10
      result = _get_req_session().request(method, request_url, params=params, files=files,
                                          timeout=(connect_timeout, read_timeout), proxies=proxy)
      logger.debug("The server returned: '{0}'".format(result.text.encode('utf8')))
      return _check_result(method_name, result)['result']
docs: Makes a request to the Telegram API.
      :param token: The bot's API token. (Created with @BotFather)
      :param method_name: Name of the API method to be called. (E.g. 'getUpdates')
      :param method: HTTP method to be used. Defaults to 'get'.
      :param params: Optional parameters. Should be a dictionary with key-value pairs.
      :param files: Optional files.
      :return: The result parsed to a JSON dictionary.