def request(verb, url, params = {}, headers = {})
if verb == :get
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
case resp.status
when 200...201
if json?
begin
ResponseHash.new(resp)
rescue StandardError => e
ResponseString.new(resp)
end
else
ResponseString.new(resp)
end
when 401
e = OAuth2::AccessDenied.new("Received HTTP 401 during request.")
e.response = resp
raise e
else
e = OAuth2::HTTPError.new("Received HTTP #{resp.status} during request.")
e.response = resp
raise e
end
end