From: Jay 99 Date: 2009-04-04T10:24:12+09:00 Subject: open-uri 414 Request-URI Too Large I am hitting a wall. This is my first attempt at ruby programming and I am sure my code leaves a lot to be desired...be gentle. I have a csv file I am loading into an array, it contains static pieces of a url that i build other urls from. It will loop through the first 10 in the array and always works. Number 11 always fails with: C:/Ruby/lib/ruby/1.8/open-uri.rb:277:in `open_http': 414 Request-URI Too Large ( OpenURI::HTTPError) from C:/Ruby/lib/ruby/1.8/open-uri.rb:616:in `buffer_open' from C:/Ruby/lib/ruby/1.8/open-uri.rb:164:in `open_loop' from C:/Ruby/lib/ruby/1.8/open-uri.rb:162:in `catch' from C:/Ruby/lib/ruby/1.8/open-uri.rb:162:in `open_loop' from C:/Ruby/lib/ruby/1.8/open-uri.rb:132:in `open_uri' from C:/Ruby/lib/ruby/1.8/open-uri.rb:518:in `open' from C:/Ruby/lib/ruby/1.8/open-uri.rb:30:in `open' So I shift my loop to start at 11 to the end and after the 10th time in the loop it fails. Shift it again by 10, same thing. A total of 58 array elements, csv file size is 44 KB. Rules out the data right? Leads me to believe that I have a memory problem or maybe I need to clear out the variable. The array data contains passwords and usernames so I will sanitize them and upload if needed. Here is the basic code. require 'rubygems' require 'hpricot' require 'open-uri' require 'csv' fluffers = Array.new urlA = "http://mywebpage.com/fight.php?investor_id=67814104&action=status" urlB = "http://mywebpage.com/bank.php?amount=" urlB2 = "&action=Deposit&do=Deposit" urlH = "http://mywebpage.com/holy.php?cost=&action=Get%20personal" urlS = "http://mywebpage.com/index.php?" # Populate the array with the static information CSV.open('z:/ruby/invest2.csv', 'r') do |row| fluffers.push row end i = 0 until i == fluffers.length doc = Hpricot(open(urlStatus << fluffers[i].to_s)) inMoney = doc.search("//strong[@class='money']").inner_html.gsub(/\D/,'') inHoly = (doc/"#current_holy").inner_html inEnergy = (doc/"#current_energy").inner_html inStock = (doc/"#current_stock").inner_html if inMoney.to_i > 0 open(urlB + inMoney + urlB2 + fluffers[i].to_s) print "deposit\n" end inStock.to_i.times do if inHoly.to_i < 20 open(urlH + fluffers[i].to_s) end open(urlA + fluffers[i].to_s) print "a\n" doc = Hpricot(open(urlS << fluffers[i].to_s)) inHoly = (doc/"#current_holy").inner_html print inHoly end i += 1 end Thank You! -- Posted via http://www.ruby-forum.com/.