class OAuth2::Client

def request(verb, url, params={}, headers={})

Makes a request relative to the specified site root.
def request(verb, url, params={}, headers={})
  if (verb == :get) || (verb == :delete)
    resp = connection.run_request(verb, url, nil, headers) do |req|
      req.params.update(params)
    end
  else
    resp = connection.run_request(verb, url, params, headers)
  end
  if raise_errors
    case resp.status
      when 200...299
        return response_for(resp)
      when 302
        return request(verb, resp.headers['location'], params, headers)
      when 401
        e = OAuth2::AccessDenied.new("Received HTTP 401 during request.")
        e.response = resp
        raise e
      when 409
        e = OAuth2::Conflict.new("Received HTTP 409 during request.")
        e.response = resp
        raise e
      else
        e = OAuth2::HTTPError.new("Received HTTP #{resp.status} during request.")
        e.response = resp
        raise e
    end
  else
    response_for resp
  end
end