PRIVATE METHOD
    Uses salt.utils.json.load to fetch the JSON results from the solr API.

    url : str
        a complete URL that can be passed to urllib.open
    request_timeout : int (None)
        The number of seconds before the timeout should fail. Leave blank/None
        to use the default. __opts__['solr.request_timeout']

    Return: dict<str,obj>::

         {'success':boolean, 'data':dict, 'errors':list, 'warnings':list}

def _http_request(url, request_timeout=None):
    '''
    PRIVATE METHOD
    Uses salt.utils.json.load to fetch the JSON results from the solr API.

    url : str
        a complete URL that can be passed to urllib.open
    request_timeout : int (None)
        The number of seconds before the timeout should fail. Leave blank/None
        to use the default. __opts__['solr.request_timeout']

    Return: dict<str,obj>::

         {'success':boolean, 'data':dict, 'errors':list, 'warnings':list}
    '''
    _auth(url)
    try:

        request_timeout = __salt__['config.option']('solr.request_timeout')
        kwargs = {} if request_timeout is None else {'timeout': request_timeout}
        data = salt.utils.json.load(_urlopen(url, **kwargs))
        return _get_return_dict(True, data, [])
    except Exception as err:
        return _get_return_dict(False, {}, ["{0} : {1}".format(url, err)])