# File lib/oauth2/client.rb, line 57
    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