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