# File lib/twitter/rest/request.rb, line 30
      def perform
        @headers = Twitter::Headers.new(@client, @request_method, @uri.to_s, @options).request_headers
        begin
          response = @client.connection.send(@request_method, @path, @options) { |request| request.headers.update(@headers) }.env
        rescue Faraday::Error::TimeoutError, Timeout::Error => error
          raise(Twitter::Error::RequestTimeout.new(error))
        rescue Faraday::Error::ClientError, JSON::ParserError => error
          raise(Twitter::Error.new(error))
        end
        @rate_limit = Twitter::RateLimit.new(response.response_headers)
        response.body
      end