'Combines multiple parameter sources.'

@classmethod
def from_request(cls, http_method, http_url, headers=None, parameters=None, query_string=None):

    if (parameters is None):
        parameters = {}
    if (headers and ('Authorization' in headers)):
        auth_header = headers['Authorization']
        if (auth_header[:6] == 'OAuth    '):
            auth_header = auth_header[6:]
            try:
                header_params = cls._split_header(auth_header)
                parameters.update(header_params)
            except:
                raise Error('Unable    to    parse    OAuth    parameters    from    Authorization    header.')
    if query_string:
        query_params = cls._split_url_string(query_string)
        parameters.update(query_params)
    param_str = urlparse.urlparse(http_url)[4]
    url_params = cls._split_url_string(param_str)
    parameters.update(url_params)
    if parameters:
        return cls(http_method, http_url, parameters)
    return None
